PXE(preboot execute environment预启动执行环境)
PXE是intel公司推出的一款通过网络来引导操作系统的协议。广泛应用于网吧无盘系统。只需要将无盘服务器维护好,就能保证网络中的无盘工作站(客户机)的系统能正常运行。
PXE服务器需要的支撑软件:DHCP、TFTP、syslinux(提供pxe引导程序文件pxelinux.0)、文件共享(nfs、ftp、http、samba)等。
PXE服务器和客户机的工作过程:
1.PXE客户机发出DHCP请求,向服务器申请IP地址。
2.DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机:TFTP(简单文件传输协议)服务器的IP地址和PXE引导程序文件pxelinux.0。 3.PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。 4.TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。 5.PXE客户机通过网络来启动到系统安装主界面。 6.PXE客户机向文件共享服务器发起获取centos或windows系统安装文件的请求。 7.文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。 8.PXE客户机进入到安装提示向导界面,用户需要手动来完成系统的操作最后安装系统时可以采用kickstart或者vim工具创建一个系统自动安装的应答文件,并用文件共享服务来共享ks.cfg文件(ks.cfg自动应答文件是记录系统安装的操作步骤,客户机在进行安装时会自动根据ks.cfg文件中的内容来完成安装操作)实现自动安装操作。
PXE中各服务器软件的功能:
DHCP:用来给PXE客户机自动分配TCP/IP设置(包括IP地址、子网掩码、网关、DNS等)。告知PXE客户机“TFTP服务器的IP地址和PXE启动文件名”。
TFTP:是一个迷你的FTP共享协议软件,用来给PXE客户机提供网络启动的引导程序文件pxelinux.0。 syslinux:用来提供pxelinux.0网络引导程序文件。 文件共享:可以是vsftpd、nfs、samba、http等软件来实现文件共享。用来给PXE客户机提供系统安装文件。部署过程详解:以下是在centos7.6系统里进行的操作,且centos系统IP为192.168.11.11
部署前提检查Linux防火墙是否关闭和是否关闭selinux功能:
systemctl stop firewalld && systemctl status firewalld 关闭防火墙功能和查看防火墙的状态
setenforce 0 && getenforce 关闭Linux安全功能即设置为宽容模式Permissive和查看selinux状态
第一步:部署DHCP服务器:
1.查软件是否已安装:rpm -q dhcp
2.安装dhcp服务器软件:yum install -y dhcp 3.查配置文件列表:rpm -qc dhcp 4.编辑dhcpd.conf配置文件 rpm -qc dhcp cat /etc/dhcp/dhcpd.conf cat /usr/share/doc/dhcp*/dhcpd.conf.example复制其中的一段内容即:
subnet 10.5.5.0 netmask 255.255.255.224 { range 10.5.5.26 10.5.5.30; option domain-name-servers ns1.internal.example.org; option domain-name "internal.example.org"; option routers 10.5.5.1; option broadcast-address 10.5.5.31; default-lease-time 600; max-lease-time 7200; } | 定义网络地址和子网掩码 指定IP地址池的范围(起始和截止IP) 域名解析服务器的IP地址 域名 网关IP地址 广播地址 默认租约时间 最大租约时间 |
粘贴进DHCP的配置文件内,用vim打开并进行如下修改
vim /etc/dhcp/dhcpd.conf
subnet 192.168.11.0 netmask 255.255.255.0 { range 192.168.11.21 192.168.11.30; option domain-name-servers 8.8.8.8; option domain-name "hj.com"; option routers 192.168.11.2; option broadcast-address 192.168.11.255; default-lease-time 6000; max-lease-time 72000; next-server 192.168.11.11; filename "pxelinux.0"; } | TFTP服务器的IP地址 PXE引导程序文件名 |
5.启动dhcpd服务,允许服务开机自动启动
systemctl restart dhcpd systemctl enable dhcpd systemctl status dhcpd netstat -atunlp | grep :67 查67号端口的网络进程序第二步:部署tftp-server服务器
1.查软件是否已安装:rpm -q tftp-server
2.安装tftp-server服务器软件:yum install -y tftp-server 3.查配置文件列表:rpm -qc tftp-server /etc/xinetd.d/tftp 4.编辑tftp配置文件 vim /etc/xinetd.d/tftp 将disable的yes改为no 5.启动tftp服务,允许服务开机自动启动 systemctl restart tftp systemctl enable tftp systemctl status tftp netstat -atulp | grep tftp netstat -atunlp | grep :69 6.安装提供pxelinux.0的syslinux软件,共享pxe引导程序文件 rpm -q syslinux mlocate yum install -y syslinux mlocate 安装指定的软件 updatedb 更新locate文件查找数据库 locate pxelinux.0 查找pxelinux.0文件 7.共享指定的文件到/var/lib/tftpboot目录中 cd /var/lib/tftpboot 切换到tftp-server的默认共享目录 cp -v /usr/share/syslinux/pxelinux.0 ./ 复制指定的文件到当前目录中 df -hT 查看磁盘空间使用状态 cp -v /dvd/isolinux/* ./ 复制光盘挂载点目录中指定的文件到当前目录中 mkdir -v pxelinux.cfg 在当前目录中创建pxelinux.cfg目录 cp -v isolinux.cfg pxelinux.cfg/default 复制指定的文件到指定目录中并改名为default第三步:部署文件共享服务器(以vsftp为例)(可用的有vsftpd、nfs、samba、httpd)
1.查软件是否已安装:rpm -q vsftpd
2.安装tftp-server服务器软件:yum install -y vsftpd 3.查配置文件列表:rpm -qc vsftpd 4.启动vsftpd服务,允许开机自动启动服务 systemctl restart vsftpd systemctl enable vsftpd systemctl status vsftpd netstat -atunlp | grep :21 或 lsof -i :21 5.共享centos7的系统镜像到/var/ftp/dvd目录 mkdir -v /var/ftp/dvd mount /dev/sr0 /var/ftp/dvd第四步:kickstart自动安装部署
采用kickstart自动应答程序来实现系统的自动化安装(即静默安装)
方法:使用kickstart程序或vim来创建ks.cfg自动应答文件。用文件共享服务来共享ks.cfg自动应答文件。 技巧:linux系统在安装时会自动生成一个anaconda-ks.cfg配置文件,文件位于/root目录中,anaconda-ks.cfg里面记录的就是用户在安装系统时所做的操作(选择语言环境、硬盘分区、安装的软件包、网卡IP设置、主机名、root用户密码、新建普通用户等)。具体实施:
1.修改/root/anaconda-ks.cfg权限为644,复制/root/anaconda-ks.cfg到/var/ftp/ks目录中。 cd /root chmod -v 644 anaconda-ks.cfg mkdir -v /var/ftp/ks cp -v anaconda-ks.cfg /var/ftp/ks/ks.cfg 2.修改/var/lib/tftpboot/pxelinux.cfg/default启动菜单文件 vim /var/lib/tftpboot/pxelinux.cfg/default :set nu 显示行号 修改63行内容为append initrd=initrd.img method=ftp://192.168.11.11/dvd ks=ftp://192.168.11.11/ks/ks.cfg 说明:ks=是指定ks.cfg自动安装应答文件的功能选项 3.修改/var/ftp/ks/ks.cfg文件内容 cat /var/ftp/ks/ks.cfg 查看ks.cfg自动应答文件 注释cdrom 改ip=192.168.11.12 改hostname=han4.采用kickstart软件来生成ks.cfg自动应答文件。
yum search kickstart 搜索kickstart关键字的软件
yum install -y system-config-kickstart 安装kickstart软件包 system-config-kickstart 启动kickstart配置程序 注意:yum源的repo文件中的“仓库标识”必须用[development]才能出现软件包信息 修改yum源配置文件: vim /etc/yum.repos.d/local.repo 文件内容如下 [development] name=centos 7.5 linux baseurl=file:///dvd enabled=1 gpgcheck=0第五步:PXE客户机的测试
1.在VMware虚拟机软件中新建一台名称为PXE0的centos7_64位系统的虚拟机。
2.给PXE0虚拟机的内存设置成1324M,硬盘20G。(内存设置大小时需注意不能小于应答文件中 size 大小) 3.给PXE0虚拟机创建一个名称为“NOS”的快照。(设置快照是便于多次测试) 4.启动PXE0虚拟机,会自动进行系统安装