LinuxPXE+Kickstrart无人值守安装服务
要求:关闭VMware虚拟网络编辑器中自身的DHCP服务
主机名称 | 操作系统 | IP地址 |
NoneOS | Centos7 | 192.168.72.250 |
Custormer | 无 |
1、挂在本地镜像源本配置Yum仓库,安装DHCP服务
[root@NoneOs ~]# yum install dhcp -y
2、配置DHCP服务
[root@NoneOs ~]# vim /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
subnet 192.168.72.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.72.250;
range dynamic-bootp 192.168.72.100 192.168.72.200;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.72.250;
filename "pxelinux.0";
}
[root@NoneOs ~]# systemctl restart dhcpd
[root@NoneOs ~]# systemctl enable dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
3、配置TFTP服务程序
[root@NoneOs ~]# yum install tftp-server -y
service 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
}
[root@NoneOs ~]# systemctl restart xinetd
[root@NoneOs ~]# systemctl enable xinetd
TFTP服务程序默认使用UDP协议,占用的端口是69,在生产环境中需要在firewalld防火墙工具中写入使其永久生效的允许策略。
firewall-cmd --permanent --add-port=69/udp
firewall-cmd --reload
在实验环境中可以直接将防火墙关闭
[root@NoneOs ~]# systemctl stop firewalld
4、SYSlinux服务
[root@NoneOs ~]# yum install syslinux -y
首先将SYSlinux提供的引导文件复制到TFTP服务程序的默认目录中,就是之前pxelinux.0该文件,这样客户端主机就能顺利地获取到引导文件。还需要调用一些Centos7光盘镜像的一些引导文件,确认光盘镜像挂在到本地然后将其中的一些引导文件复制到TFTP服务程序的默认目录中。
[root@NoneOs tftpboot]# cp /usr/share/syslinux/pxelinux.0 .
[root@NoneOs tftpboot]# cp /media/images/pxeboot/{vmlinuz,initrd.img} .
[root@NoneOs tftpboot]# cp /media/isolinux/{vesamenu.c32,boot.msg} .
然后在TFTP服务程序的目录中新建pxelinux.cfg目录,此目录虽然带有后缀,但是依然是目录。将系统光盘中的开机选项菜单复制到该目录中,并命名为default
[root@NoneOs tftpboot]# mkdir pxelinux.cfg
[root@NoneOs tftpboot]# cp /media/isolinux/isolinux.cfg pxelinux.cfg/default
修改复制来的default文件
[root@NoneOs tftpboot]# vim pxelinux.cfg/default
1 default linux
64 append initrd=initrd.img inst.stage2=ftp://192.168.72.250 ks=ftp://192.168.7 2.250/pub/ks.cfg quiet
5、配置vsftpd服务
光盘镜像通过FTP协议来传输,因此用到vsfptd服务。
[root@NoneOs ~]# yum install vsftpd -y
[root@NoneOs ~]# systemctl restart vsftpd
[root@NoneOs ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
在确认光盘镜像文件正常挂在到本地目录之后,把该目录中的光盘镜像文件全部复制到vsftpd的工作目录中。
[root@NoneOs ~]# cp -r /media/* /var/ftp/
在生产环境中,需要将FTP协议在firewalld防火墙中写入永久生效的允许策略,然后在SELINUX中放行FTP传输:
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
setsebool -P ftpd_connect_all_unreserved=on
6、创建KickStart应答文件
kisckStart并不是一个服务程序,而是一个应答文件,包含了系统安装过程中需要使用的选项和参数信息,系统可以自动调取这个应答文件的内容,从而实现无人值守安装系统。
这个文件就在root管理员的家目录名为anaconda-ks.cfg文件。
[root@NoneOs ~]# cp -r /media/* /var/ftp/
[root@NoneOs ~]# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
[root@NoneOs ~]# chmod +r /var/ftp/pub/ks.cfg
[root@NoneOs ~]# vim /var/ftp/pub/ks.cfg
5 url --url=ftp://192.168.72.250
23 timezone Asia/Shanghai --isUtc
28 clearpart --all --initlabel
7、自动部署客户端主机
网络模式选择仅主机
自动安装无须人工干预