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、自动部署客户端主机
网络模式选择仅主机
自动安装无须人工干预