# pxe服务器
pxe:(preboot execute environment,预启动执行环境)。是inter公司推出的一款通过网络来引导操作系统的协议。广泛应用于网吧无盘系统。只需要将无盘服务器维护好,就能保证网络中的无盘工作站(客户机能正常运行。)
pxe本讲目标
用centos系统部署一台pxe服务器,实现通过pxe网络来给pxe客户机手动或自动安装centos7操作系统。
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或window系统安装的请求。
7.文件共享服务器进去到安装提示向导页面,将共享的系统安装文件传输给pxe客户机。
8.pxe客户机进入到安装提示向导界面,用户需要手动来完成系统的安装。
pxe中各服务器软件否功能:
DHCP:用来给pxe客户机自动分配TCP/IP设置(包括IP地址、子网掩码、网关、DNS等)。告知pxe客户机“TFTP服务器的IP地址和pxe启动文件名”。
TFTP:是一个迷你的FTP共享协议软件,用来给pxe客户机提供网络启动的引导程序文件pxelinux.0。
syslinux:用来提供pxelinux.0网络引导程序文件。
文件共享:可以是vsftpf、nfs、samba、http等软件来实现文件共享。用来给pxe客户机提供系统安装文件。
PXE服务器的部署:
关闭selinux和防火墙:
setenforce 0 && getenforce
systemctl stop firewalld && systemctl disable firewalld
部署DHCP服务器
1.查软件是否安装:rpm -q dhcp
2.安装dhcp服务器软件:yum -y install dhcp
3.查配置文件列表:rpm -qc dhcp
/etc/dhcp/dhcpd.conf **是dhcp服务器的主配置文件(实现DHCP的ipv4功能)
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd是dhcp服务器的辅助配置文件(用于多网卡环境)
/var/lib/dhcpd/dhcpd.leases是dhcp服务器的租约文件(记录客户机从服务器获取的IP地址信息)
/var/lib/dhcpd/dhcpd6.leases
4.编辑dhcpd.conf配置文件
rpm -qc dhcp
cat /etc/dhcp/dhcpd.conf
可以看到
cat /usr/share/doc/dhcp/dhcpd.conf.example
把这几行贴到下面的主配置文件中
vim /etc/dhcpd/dhcpd.conf
改成去下所示
最后2行是自己加上去的
5.启动dhcp服务允许服务开机自动启动。
systemctl restart dhcpd
systemctl enable dhcpd
systemctl status dhcpd
netstat -atunlp |grep :67查67号端口的网络进程序
pxe客户机测试
1.在VMware虚拟机软件中新建一台名称为PXE的centos7_64位系统的虚拟机。
2.给pxe虚拟机的内存设置为1324M(内存小了会报错)
3.给PXE虚拟机创建一个名称为NOS的快照。
4.启动pxe虚拟机,会发现它自动获到了ip地址,并卡在看下图的界面。
next-server 在哪台服务器上做的就写哪个ip地址
部署tftp-server服务器
1.查软件是否安装:rpm -q tftp-server
2.安装tftp-srever服务器软件yum -y isntall tftp-server
3.查配置文件列表:rpm -qc tftp-server
/etc/xinetd.d/tftp
4.编辑tftp配置文件
cat /etc/xinetd.d/tftp
5.启动tftp服务,允许服务开机自动启动。
systemctl restart tftp
systemctl enable tftp
netstat -atunlp |grep :69 查网络进程中关于69号端口关键字的信息
6.安装提供pxelinux.0的syslinux软件,共享pxe引导程序文件。
rpm -q syslinux mlocate
yum -y install syslinux mlocate
updatedb 更新locate文件查找数据库
locate pxelinux.0 查找pxelinux.0文件
可以看到有2个文件
共享指定的文件到/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
/var/lib/tftpboot tftp服务的默认共享目录
├── boot.cat
├── boot.msg
├── grub.conf
├── initrd.img linux系统镜像文件(即迷你版的linux系统)
├── isolinux.bin
├── isolinux.cfg
├── memtest
├── pxelinux.0 pxe的引导程序文件
├── pxelinux.cfg pxe启动菜单的配置文件目录
│ └── default PXE启动菜单(即centos的安装界面菜单)
├── splash.png 安装界面的黑色背景图片
├── TRANS.TBL
├── vesamenu.c32 pxe的32位菜单管理程序
└── vmlinuz pxe启动的linux内核文件
pxe客户机测试:
重启pxe虚拟机,会发现它自动获到了引导程序文件,并卡在了下图的界面
文件共享服务器部署
可用软件:vsftpd、nfs、samba、httpd
以vsftpd为列来部署:
1.查软件是否已安装:rpm -q vsftpd
2.安装tftp-server服务器软件:yum -y install vsftpd
3.查配置文件列表:rpm -qc vsftpd
4.启动vsftpd服务,允许开机自动启动服务
systemctl restart vsftpd
systemctl enable vsftpd
systemctl status vsftpd
netstat -atunlp |grep :21 或lsof -i :21
5.共享centos的系统镜像到/var/ftp/dvd
mkdir -v /var/ftp/dvd
mount /dev/sr0 /var/ftp/dvd最好用自动挂载
6.修改/var/lib/tftpboot/pxelinux.cfg/default启动菜单文件内容
vim /var/lib/tftpboot/pxelinux.cfg/default 修改内容如下
61 label linux
62 menu label ^Install CentOS 7
63 kernel vmlinuz
64 append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet 找到此行
修改64行内容为append initrd=initrd.img method=ftp://192.168.11.11/dvd
重启服务 systemctl restart tftp
在第一个菜单界面上直接按回车键,等待安装程序的启动,知道进到下图所示的界面
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
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
61 label linux 标签为linux
62 menu label ^Install CentOS 7 菜单标签为Install CentOS 7
63 menu default 添加此行,设置为默认菜单
64 kernel vmlinuz 指定系统内核文件名为vmlinuz文件
修改64行内容为append initrd=initrd.img method=ftp://192.168.11.11/dvd ks=ftp://192.168.11.11/ks/ks.cfg
66 #menu default 用#号注释掉此行
说明:ks=是指定ks.cfg自动安装应答文件的功能选项。
重启服务。