今天我们使用PXE+Kickstart+TFTP+DHCP+FTP实现无人值守安装服务器。
1)PXE
2)Kickstart
3)TFTP
4)DHCP
给客户机分配IP地址
5)FTP
6)交互流程图
(初学者可能目前不太理解这个交互过程,没关系咱继续往下看。随着后续的学习您会理解下方的交互流程)
本次实验采用all-in-one模式,即 我们将FTP、DHCP、TFTP服务全部署在一台服务器上。
1)服务器介绍:
2)实验要求
如果对yum源的部署有疑问,参考:
yum学习笔记
1)部署FTP服务
[root@qll251 ~]# yum -y install vsftpd
#安装ftp服务[root@qll251 ~]# systemctl start vsftpd
#启动ftp服务[root@qll251 ~]# systemctl enable vsftpd #设置ftp服务开机自启动## 到此,ftp部署已完成。共享路径:/var/ftp
2)部署DHCP服务
1. 安装dhcp服务
root@qll251 ~]# yum -y install dhcp
2. 修改dhcpd.conf配置文件
root@qll251 ~]# vim /etc/dhcp/dhcpd.conf
3. 启动dhcp服务并设置开机自启动
[root@qll251 ~]# systemctl start dhcpd
[root@qll251 ~]# systemctl enable dhcpd
3)部署tftp-server服务
1. 安装tftp-server所需服务
[root@qll251 ~]# yum -y install tftp-server
[root@qll251 ~]# yum -y install xinetd #Xinetd管理tftp工作
2. 修改TFTP服务的配置文件
3. 启动tftp服务,并设置开机自启动
[root@qll251 ~]# systemctl start tftp && systemctl enable tftp
[root@qll251 ~]# systemctl start xinetd && systemctl enable xinetd
4)制作kickstart自动应答文件
1. 安装kickstart
[root@qll251 ~]# yum -y install system-config-kickstart
2. 在终端上执行system-config-kickstart
注意:如果用终端软件比如MobaXerm,执行上面命令无法弹出选择框,需要您安装gdm
yum -y install gdm
(您直接在带有图形化界面的机器上执行命令也是一样的)
3. 进入kickstart配置向导,先完成“基本配置”
4. 选择安装方法
5. 进行分区
6. 网络配置、验证、防火墙配置、显示配置。您按需选择就行。我就不在此演示了
7. 软件包选择
8. 设置安装后的脚本(可选项)
9. 保存自动应答文件
到目前为止,FTP,DHCP,TFTP服务及kickstart应答文件都已准备完毕。接下来我们配置PXE启动所需的相关文件
先挂载我们所需的光盘镜像
[root@qll251 ~]# mount /dev/sr0 /media #系统镜像挂载至/media
1)ftp需要共享出去的文件
共享目录:/var/ftp;需要共享两处
1. /var/ftp/ks.cfg (制作应答文件时,已保存该文件)
2. 光盘启动镜像文件
[root@qll251 ~]# cp -r /media/* /var/ftp/pub
2)tftp需要共享出去的文件
[root@qll251 ~]# yum -y install syslinux
[root@qll251 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #拷贝的第一个文件[root@qll251 ~]# cp /media/images/pxeboot/initrd.img /var/lib/tftpboot/ #拷贝的第二个文件
[root@qll251 ~]# cp /media/images/pxeboot/vmlinuz /var/lib/tftpboot/ #拷贝的第三个文件[root@qll251 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@qll251 ~]# cp /media/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #拷贝的第四个文件,拷贝时,重命名为default
[root@qll251 ~]# chmod 644 /var/lib/tftpboot/pxelinux.cfg/default #设置default文件权限:644
tftp共享目录:/var/lib/tftpboot;需要共享4个文件
1. pxelinux.0 //网络装机需要用到pxelinux.0;由yum install syslinux获得的
2. initrd.img //其实就是ramdisk的映像文件(内存模拟磁盘)。举个例子:主机系统坏掉了,我们使用win pe启动,你会发现主机就算没有硬盘也能正常运行
3. vmlinuz //包含一个最小功能的内核,通常先执行vmlinuz,之后加载initrd.img文件,最后加载根分区。
4. isolinux.cfg重命名为default
3)修改default配置文件
[root@qll251 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 1 default linux #将第一行的 default改成 default linux61 label linux62 menu label ^Install CentOS 763 kernel vmlinuz64 Append initrd=initrd.img inst.repo=ftp://192.168.2.251/pub inst.ks=ftp://192.168.2.251/ks.cfg#指定安装程序通过FTP服务访问系统镜像及ks.cfg应答文件
以上,我们便完成了pxe环境的部署,接下来我们找一台客户机进行部署
1)客户机的BIOS启动顺序调整为网络优先。或者开机Log界面按F12选择从网络启动
2)开始无人值守安装
以下步骤全部是系统自动执行,无需人为干预,只需等待安装完成即可
我们看下它都自动执行了哪些操作
最后我们通过预定义的root密码进行登录,可以看到事先写的测试脚本“hello world”已生效。系统分配的IP是192.168.2.3