kickstart+PXE+dhcp+vsftp批量无人值守安装操作系统

1、原理与过程介绍

原理:

利用PXE协议使用服务器通过网络方式启动,后向DHCP服务器请求IP,连接后将服务端的文件下载到本地,执行一系统列的操作

过程:

第一步:PXE-client发送请求

将支持PXE启动方式的服务器设置成PXE启动,PEX客户端通过PXE boot ROM以udp的形式发送一个广播包,请求DHCP服务器分配IP地址

第二步:DHCP应答请求并回应

DHCP服务器收到请求后,验证是否来自合法的PXE客户端请求,验证通过后,回应PXE客户端,回应信息中包括分配的IP地址,pxelinux启动程序(TFTP)的位置,以及配置文件的位置

第三步:PXE-client请求下载启动文件

PXE客户端收到回应后,向TFTP服务器请求下载所需的启动系统安装文件(文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件)

第四步:TFTP服务器响应请求并传送文件

当TFTP服务器收到请求后,服务器会响应请求并应答请求,之后传送所需的文件给客户端

第五步:PXE-client请求下载自动应答文件

PXE客户端通过pxelinux.cfg/default文件成引导linux安装后,安装程序必须先确定通过什么方式安装系统,如果是通过网络,则会在此时进行初始化网络,并定位安装系统所需要的二进制包以及配置文件的位置,接着读取文件中指定的自动应答文件ks.cfg,然后根据文件位置请求下载文件

第六步:客户端安装系统

将ks.cfg下载到本地,通过文件找到安装系统的ISO文件位置,并请求下载所需的软件包,正常连接后,开始传输软件包,最终开始安装操作系统,安装完成后重新启动

2、配置DHCP服务程序
注:
为了避免与自己配置的 dhcpd 服务程序产生冲突,应该先将虚拟机软件自带的 DHCP 功能关闭;
DHCP客户端与服务器需要处于同一种网络模式—仅主机模式(Hostonly),否则就会产生物理隔离,从而无法获取 IP地址;

第一步:安装DHCP服务
yum -y install dhcp

第二步:修改配置文件
vim /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.1.100 192.168.1.150;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.100;
option routers 192.168.1.1;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.1.100;
filename “pxelinux.0”;
}

host dhcpserver {
hardware ethernet 00:0c:29:2c:dd:f7;
fixed-address 192.168.1.100;
}
在这里插入图片描述
第三步:开启DHCP服务,并开机启动
systemctl start dhcpd
systemctl enable dhcpd

3、配置TFTP服务程序
第一步:安装TFTP服务
yum -y install tftp-server

第二步:开启TFTP服务
注:
TFTP是一种非常精简的文件传输服务程序,它的运行和关闭是由 xinetd 网络守护进程服务来管理的。xinetd服务程序会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来响应用户的请求。需要开启TFTP服务程序,只需在xinetd服务程序的配置文件中把disable参数改成no就可以了。保存配置文件并退出,然后重启 xinetd服务程序,并将其加入到开机启动项中(在 RHEL 7系统中,已经默认启用了 xinetd 服务程序,因此在将其添加到开机启动项中的时候没有输出信息属于正常情况)。

vim /etc/xinetd.d/tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4

systemctl restart xinetd
systemctl enable xinetd

4、配置SYSLinux服务程序
注:
SYSLinux 是一个用于提供引导加载的服务程序。与其说 SYSLinux 是一个服务程序,不如说更需要里面的引导文件,在安装好 SYSLinux 服务程序软件包后,/usr/share/syslinux 目录中会出现很多引导文件。

第一步:安装SYSLinux服务
yum -y install syslinux

第二步:修改相关配置文件
注:
我们首先需要把 SYSLinux 提供的引导文件复制到 TFTP 服务程序的默认目录中,也就是前文提到的文件 pxelinux.0,这样客户端主机就能够顺利地获取到引导文件了。另外在 RHEL 7 系统光盘镜像中也有一些我们需要调取的引导文件。确认光盘镜像已经被挂载到/mnt目录后,使用复制命令将光盘镜像中自带的一些引导文件也复制到 TFTP 服务程序的默认目录中。

挂载光盘镜像文件到/mnt目录
mount /dev/cdrom /mnt
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/
cp /mnt/isolinux/boot.msg /var/lib/tftpboot/

注:
在 TFTP 服务程序的目录中新建 pxelinux.cfg 目录,虽然该目录的名字带有后缀,但依然也是目录,而非文件!将系统光盘中的开机选项菜单复制到该目录中,并命名为 default。这个 default 文件就是开机时的选项菜单
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

修改开机选项菜单文件default
vim /var/lib/tftpboot/pxelinux.cfg/default
1 default linux
2 timeout 600
3
4 display boot.msg
。。。。。
63 kernel vmlinuz
64 append initrd=initrd.img ks=ftp://192.168.1.100/pub/ks.cfg
。。。。。

5、配置vsftpd服务程序
第一步:安装vsftpd服务
yum -y install vsftpd

第二步:开启vsftpd服务,并开机启动
systemctl restart vsftpd
systemctl enable vsftpd
setsebool -P ftpd_connect_all_unreserved=on

第三步:把光盘镜像文件全部复制到vsftpd服务程序的工作目录中
cp -r /mnt/* /var/ftp/pub/

6、关闭SElinux和firewalld防火墙
systemctl stop firewalld.service
systemctl enable firewalld.service
sed -i “s/=enforcing/=permissive/g” /etc/selinux/config
setenforce 0

7、创建kickstart应答文件
第一步:从root家目录cp文件,并添加755权限
cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
chmod 755 /var/ftp/pub/ks.cfg

第二步:修改应答文件
vim /var/ftp/pub/ks.cfg
1 #version=RHEL7
2 # System authorization information
3 auth --enableshadow --passalgo=sha512
4
5 # Use CDROM installation media
6 url --url=ftp://192.168.10.10/pub/
7 # Run the Setup Agent on first boot
。。。。。
20 # System timezone
21 timezone Asia/Shanghai --isUtc
。。。。
28 # Partition clearing information
29 clearpart --all --initlabel
。。。。。

注:
如果觉得系统默认自带的应答文件参数较少,不能满足生产环境的需求,则可以通过 Yum软件仓库来安装 system-config-kickstart 软件包。这是一款图形化的 Kickstart 应答文件生成工具,可以根据自己的需求生成自定义的应答文件,然后将生成的文件放到/var/ftp/pub 目录中并将名字修改为 ks.cfg 即可。

8、自动部署客户端主机
注:
在按照上文讲解的方法成功部署各个相关的服务程序后,就可以使用 PXE + Kickstart 无人值守安装系统了。在采用下面的步骤建立虚拟主机时,一定要把客户端的网卡模式设定成与服务端一致的“仅主机模式”,否则两台设备无法进行通信,也就更别提自动安装系统了。其余硬件配置选项并没有强制性要求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tian.1211

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值