pxe+tftp+vsftp+kickstart引导安装

pxe+tftp+vsftp+kickstart

pxe流程

  1. 客户端从自己的pxe网卡启动,发送消息请求ip地址
  2. dhcp分配给客户端地址,告诉它pxelinux.0的位置
  3. 客户端执行pxelinux.0
  4. 客户端加载内核(vmlinuz)和文件系统(initrd.img)
  5. 进入安装页面通过指定的方式(NFS,HTTP,FTP)进行安装

系统

centos8

一、配置dhcp服务器

1、安装dhcp

1
yum install dhcp-server -y

2、配置dhcp

复制模板文件

1
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf 

配置dhcp

1
vi /etc/dhcp/dhcpd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 网络号和掩码
subnet 10.10.70.0 netmask 255.255.255.0 {
# dhcp地址池范围
range 10.10.70.1 10.10.70.100;
# dns服务器
option domain-name-servers ns1.internal.example.org;
option domain-name "internal.example.org";
# 网关
option routers 10.10.70.254;
# 广播地址
option broadcast-address 10.10.70.255;
# 默认租期,客户端没有指定租期时候使用
default-lease-time 600;
# 最大租期
max-lease-time 7200;
# tftp服务器的ip
next-server 10.10.70.102;
# pxelinux.0文件的位置,tftp服务器的结构
filename "pxelinux.0";
}

3、测试dhcp能否正常获取

启动一台虚拟机与dhcp服务器同网段,尝试能否获取ip

二、配置tftp服务器

1、安装tftp(客户端)和tftp-server(服务器)并启动tfp-server

1
2
yum install -y tftp tftp-server
systemctl start tftp

2、准备pxelinux.0文件

1
2
yum install -y syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

3、 准备vmlinuz(内核)和initrd.img(文件系统)和vesamenu.c32(安装界面)

挂载iso文件

1
2
mkdir /pxeos
mount /dev/sr0 /pxeos/

复制文件到ftpboot目录

1
cp /pxeos/isolinux/{vmlinuz,initrd.img,vesamenu.c32,ldlinux.c32,libcom32.c32,libutil.c32} /var/lib/tftpboot/

4、准备pxelinux配置文件

1
2
3
mkdir pxelinux.cfg
cp /pxeos/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
chmod 744 /var/lib/tftpboot/pxelinux.cfg/default

5、 测试能否进入系统安装界面

三、配置vsftpd服务器

1、安装和配置

1
2
yum install -y vsftpd
vim /etc/vsftpd/vsftpd.conf

开启匿名用户

1
anonymous_enable=YES

2、创建ftp目录把镜像文件挂载上去

1
2
mkdir /var/ftp/centos
mount /dev/sr0 /var/ftp/centos

四、配置pxelinux

1
vim /var/lib/tftpboot/pxelinux.cfg/default

添加引导菜单配置

1
2
3
4
label linux
menu label ^Install CentOS Linux 8
kernel vmlinuz
append initrd=initrd.img inst.stage2=ftp://10.10.70.102/centos ks=ftp://10.10.70.102/ks.cfg quiet

五、配置kickstart

默认安装完系统会在root目录下生成文件anaconda-ks.cfg,这个文件是当前系统安装时候做的配置

1、复制文件到ftp目录

1
2
cp /root/anaconda-ks.cfg /var/ftp/ks.cfg
chmod 744 /var/ftp/ks.cfg

2、配置ks.cfg

1
vim /var/ftp/ks.cfg

添加从ftp下载镜像和自动重启

1
2
url --url=ftp://10.10.70.102/centos
reboot