一 无人值守安装技术简介
1.1 什么是PXE和kickstart
1.1.1 PXE简介
PXE全称为“Pre-boot Execution Environment”,预启动执行环境。工作于S/的网络模式,通过配置仅主机模式的网络接口启动计算机,使用无人值守系统的启动文件,而不依赖于本地的镜像文件。
在启动工程中,PXE服务器使用DHCP服务为客户端提供同网段的IP地址,基于同一网段IP地址访问PXE服务器的TFTP服务,客户端通过HTTP服务提供的访问路径下载TFTP协议里相关启动软件包完成终端软件配置,按照启动软件包参数引导预先安装在服务器中的终端操作系统。
1.1.2 kickstart简介
Kickstart安装是目前主要的一种无人值守自动部署安装操作系统的方式,使用这种技术,我们可以很轻松地实现自动安装以及配置操作系统。这种技术的核心是自动应答文件(Kickstart文件),即将本来在安装过程中需要我们手动设置的语言、密码、网络参数等通过读取自动应答文件ks.cfg实现自动设置。也就是说,我们需要事先将对操作系统的设置写入自动应答文件,开始安装操作系统时,指定安装程序读取自动应答文件实现自动安装及部署操作系统。
Kickstart文件可以通过如下三种方式生成:
手动书写(仅需要一个vim编辑工具即可)
通过system-config-kickstart图形工具
通过红帽的安装程序Anacoda自动生成
1.2 PXE工作流程图
图1-1
图1-2
1.3 无人值守系统的工作原理
- PXE Client从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
- DHCP服务器返回分配给客户机的IP以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上);
3.PXE Client向本网段中的TFTP服务器索取pxeLinux.0文件;
4.PXE Client取得pxeLinux.0文件后执行该文件;
5.根据pxelinux.0的执行结果,通过TFTP服务器加载内核和文件系统;
6.进入安装界面,此时可以通过选择HTTP、FTP、NFS方式之一进行安装;
详细工作流程结合图1-1和图1-2理解
1.3 无人值守系统的工作原理 - PXE Client从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
- DHCP服务器返回分配给客户机的IP以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上);
3.PXE Client向本网段中的TFTP服务器索取pxeLinux.0文件;
4.PXE Client取得pxeLinux.0文件后执行该文件;
5.根据pxelinux.0的执行结果,通过TFTP服务器加载内核和文件系统;
6.进入安装界面,此时可以通过选择HTTP、FTP、NFS方式之一进行安装;
详细工作流程结合图1-1和图1-2理解
二 无人值守系统搭建步骤
2.1 实验环境
2.1.1工作准备
虚拟化软件 :VMware Workstation。
Linux虚拟机 :RHEL 7(两台),DHCP+TFTP+VSFTP服务器,PXE客户端。
DHCP+TFTP+VSFTP服务器 :IP:192.168.100.1/24 网卡模式:VMnet2。
PXE客户端:IP:自动获取
拓扑图如下:
2.1.2 环境配置
1、设置PXE服务器的网卡为VMnet2,仅主机模式
2、修改虚拟机的首选项配置
设置VMnet的信息,去除使用本地dhcp服务器IP地址分配给虚拟机,否则测试网卡会自动生成IP地址分配给虚拟机,与自己设置的DHCP范围不一致
3、配置主机名称和网卡IP地址
在PXE服务器上,修改主机的名称为本人信息
[root@localhost ~]# hostnamectl set-hostname txm2305
[root@localhost ~]# su
查看当前的网卡信息和IP地址
[root@txm2305 ~]# ip addr
切换至网卡信息的主配置文件
[root@txm2305 ~]# cd /etc/sysconfig/network-scripts/
[root@txm2305 network-scripts]# ls
修改当前与VMnet2关联的网卡eno16777736
[root@txm2305 network-scripts]# vim ifcfg-eno16777736
修改信息如下图:
重启网络更新网卡信息,可以看见配置已生效
[root@txm2305 network-scripts]# systemctl restart network
[root@txm2305 network-scripts]# ip addr
4、关闭安全设置
关闭防火墙的保护策略,否则服务器无法向外界提供服务
[root@txm2305 ~]# systemctl stop firewalld.service
[root@txm2305 ~]# systemctl status firewalld.service
将selinux的强制模式设置为disabled,该模式下的安全防范弱
[root@txm2305 ~]# getenforce
[root@txm2305 ~]# vim /etc/selinux/config
2.2 DHCP服务器配置
2.2.1 配置仓库源
切换至yum的主配置文件
[root@txm2305 ~]# cd /etc/yum.repos.d/
[root@txm2305 yum.repos.d]# ls
新增yum源名称为TXM2305rhel7.repo,内容如下图:
[root@txm2305 yum.repos.d]# vim TXM2305rhel7.repo
将光盘挂载于/media目录下,方便软件包安装
[root@txm2305 yum.repos.d]# mount /dev/cdrom /media/
2.2.2安装DHCP服务
[root@txm2305 ~]# yum -y install dhcp
2.2.3配置DHCP服务器
切换到/etc/dhcp主配置文件,查看dhcpd.conf文件,编辑此文件。填写完毕后,重新启动该服务,显示为active为正常启动。
[root@txm2305 ~]# cd /etc/dhcp/
[root@txm2305 dhcp]# ls
[root@txm2305 dhcp]# vim dhcpd.conf
[root@txm2305 dhcp]# systemctl restart dhcpd
[root@txm2305 dhcp]# systemctl status dhcpd
/etc/dhcp/dhcpd.cond文件内,新增如下一段话,详细信息如下图:
2.3 TFTP服务器配置
2.3.1安装TFTP服务器
[root@txm2305 ~]# yum -y install tftp-server
23.2配置TFTP服务器
切换到TFTP的主配置文件/etc/xinetd.d/并查看目录下的tftp文件,编辑此文件的内容,将disable处的yes改为no。重新启动tftp.socket,状态为active正常。
[root@txm2305 dhcp]# cd /etc/xinetd.d/
[root@txm2305 xinetd.d]# ls
[root@txm2305 xinetd.d]# vim tftp
[root@txm2305 xinetd.d]# systemctl restart tftp.socket
[root@txm2305 xinetd.d]# systemctl status tftp.socket
/etc/xinetd.d/tftp文件内容如下图:
2.3.3配置SYSLinux服务
安装SYSLinux服务软件包
[root@txm2305 ~]# yum -y install syslinux
通过tftp文件,可以看到tftp的默认文件位置,需要拷贝syslinux的四个文件到该目录下,用于提供测试机装机。把SYSLinux提供的引导文件复制到TFTP的默认目录下,pxelinux.0、menu.c32、vmlinuz和initrd.img这四份文件能让客户机获取引导文件和光盘中的一些引导文件同时拷贝到TFTP服务器的默认目录。“.”表示当前目录/var/lib/tftpboot
[root@txm2305 xinetd.d]# cat tftp
[root@txm2305 xinetd.d]# cd /var/lib/tftpboot/
[root@txm2305 tftpboot]# ls
[root@txm2305 tftpboot]# cp /usr/share/syslinux/pxelinux.0 .
[root@txm2305 tftpboot]#
[root@txm2305 tftpboot]# cp /usr/share/syslinux/menu.c32 .
[root@txm2305 tftpboot]#
[root@txm2305 tftpboot]# cp /media/isolinux/vmlinuz .
[root@txm2305 tftpboot]#
[root@txm2305 tftpboot]# cp /media/isolinux/initrd.img .
[root@txm2305 tftpboot]#
新建pxelinux.cfg文件,切换到pxelinux.cfg下,新建一个default文件。
[root@txm2305 tftpboot]# mkdir pxelinux.cfg
[root@txm2305 tftpboot]# ls
[root@txm2305 tftpboot]# cd pxelinux.cfg/
[root@txm2305 pxelinux.cfg]# ls
[root@txm2305 pxelinux.cfg]# vim default
自己写一段脚本内容,该脚本内容参考isolinux.cfg文件精简后的,内容如下:
2.4 HTTP服务器配置
2.4.1安装HTTP服务
[root@txm2305 ~]# yum -y install httpd
2.4.2启动HTTP服务器
[root@txm2305 pxelinux.cfg]# systemctl restart httpd
[root@txm2305 pxelinux.cfg]#
[root@txm2305 pxelinux.cfg]# systemctl status httpd.service
2.4.3配置HTTP目录
在HTTP的主目录下,创建光盘挂载的文件为TXM2305,挂载光盘于该目录
[root@txm2305 pxelinux.cfg]# cd /var/www/html/
[root@txm2305 html]# ls
[root@txm2305 html]# mkdir TXM2305
[root@txm2305 html]# ls
[root@txm2305 html]#
[root@txm2305 html]# umount /dev/cdrom /media/
[root@txm2305 html]# mount /dev/cdrom /var/www/html/TXM2305/
2.5 制作kickstart应答文件
2.5.1配置应答文件
在root的家目录下,复制anaconda-ks.cfg的文件于HTTP的主目录,然后修改名称为ks.cfg,此文件为Kickstart的应答文件
[root@txm2305 html]# cd
[root@txm2305 ~]# ls
[root@txm2305 ~]#
[root@txm2305 ~]# cp anaconda-ks.cfg /var/www/html/
[root@txm2305 ~]#
[root@txm2305 ~]# cd /var/www/html/
[root@txm2305 html]# mv anaconda-ks.cfg ks.cfg
[root@txm2305 html]# ls
由于该文件没有可读的权限,因此给予r权限
[root@txm2305 html]# chmod +r ks.cfg
再次验证后,可以查看到文件信息
修改ks.cfg的文件,如下图:
将cdrom修改为url路径为HTTP服务器的IP地址,即本机地址
[root@txm2305 html]# vim ks.cfg
把cleanpart处的none修改为all
重启PXE服务器
[root@txm2305 html]# reboot
重启开机后,重新启动dhcp、tftp、http服务
[root@txm2305 ~]# systemctl restart dhcpd
[root@txm2305 ~]# systemctl restart tftp.socket
[root@txm2305 ~]# systemctl restart httpd
[root@txm2305 ~]# systemctl restart tftp.socket
[root@txm2305 ~]# systemctl status tftp.socket
2.5.2排除干扰因素
再次确认防火墙、selinux:
[root@txm2305 ~]# systemctl stop firewalld.service
[root@txm2305 ~]# systemctl status firewalld.service
[root@txm2305 ~]# getenforce
再次确认挂载光盘是否成功
[root@txm2305 ~]# df -h
[root@txm2305 ~]# mount /dev/cdrom /var/www/html/TXM2305/
[root@txm2305 ~]# df -h
验证光盘挂载
三 无人值守自动部署
3.1 测试机创建
3.2 自动部署过程
开机验证自动部署
自动安装完毕!