Loading... <p> <span style="font-size: 20px"><strong>前言</strong></span></p> <p> 在实际生产环境中,有时候我们会碰到为几十上百甚至上千台服务器安装Linux操作系统的需求,如果我们还是常规的去使用移动介质逐台安装,显然是一件低效又令人抓狂的事情,那要安装到何年何月啊?这对于我们追求高逼格形象的技术人员来讲当然是不可以接受的,为此,pxe模式批量部署系统应运而生。</p> <p> <strong><span style="font-size: 20px">原理</span></strong></p> <p dir="ltr"><strong><span style="font-size: 20px"> </span></strong><span style="font-size: 20px"><span style="font-size: 16px">我们知道,当我们使用其它引导介质(例如硬盘、软盘、U盘、CD或者DVD)安装操作系统时,是加载其首个扇区中MBR(主引导目录)中的引导程序并利用其查找各自介质中的必需数据来完成的。而pxe则是通过自带pxe bootrom的网卡使用TFTP(简单文件传输协议)和DHCP(动态主机配置协议)从网络服务器上查找并装载引导程序和必需的数据来完成系统的安装的。下面让我们通过实验来进一步理解其安装过程。</span></span></p> <p dir="ltr"><span style="font-size: 20px"> <strong><span style="font-size: 20px">实验环境:vmware Workstation 10、CentOS-6.5-x86_64</span></strong></span></p> <p dir="ltr"><strong><span style="font-size: 20px"> </span><span style="font-size: 18px">1、配置DHCP服务</span></strong></p> <p dir="ltr"><strong><span style="font-size: 18px"> </span></strong><span style="font-size: 16px">1、</span><span style="font-size: 16px">配置/etc/sysconfig/network-scripts/ifcfg-eth0 将网卡设置为开机启动,地址配置为静态(服务器一般设置为静态ip地址)。</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="//cto.wang/usr/uploads/2016/07/20160703180326-59.png" title="1432215881149788.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 2、关掉防火墙以免对实验带来不必要的麻烦(有可能有影响tftp)。</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="//cto.wang/usr/uploads/2016/07/20160703180326-88.png" title="1432358881857334.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 3、修改/etc/sysconfig/selinux配置文件,永久关闭selinux,以免带来不必要的麻烦。</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="//cto.wang/usr/uploads/2016/07/20160703180326-55.png" title="1432359001113236.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="//cto.wang/usr/uploads/2016/07/20160703180326-20.png" title="1432216973767839.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 4、yum -y installdhcp安装dhcp程序包</span></p> <p dir="ltr"><span style="font-size: 16px"> 5、将/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample拷贝至/etc/dhcp/dhcpd.conf并做如下修改</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="//cto.wang/usr/uploads/2016/07/20160703180326-37.png" title="1432219544802535.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 6、依次做如下图操作,确保dhcpd服务运行</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="//cto.wang/usr/uploads/2016/07/20160703180326-35.png" title="1432219901251101.png" alt="blob.png" width="827" height="281" style="width: 827px;height: 281px" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 7、验证dhcp服务器配置</span></p> <p dir="ltr"><span style="font-size: 16px"> 我的实验环境中有一个win7系统,将dhcp服务器所在虚拟机客户端与win7客户端接入vnet3中验证</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="//cto.wang/usr/uploads/2016/07/20160703180326-65.png" title="1432220071176193.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 测试win7是否能够自动获取自动配置信息</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="//cto.wang/usr/uploads/2016/07/20160703180326-85.png" title="1432220354118065.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 获取成功,dhcp服务器配置完毕!</span></p> <p dir="ltr"><span style="font-size: 16px"> <strong><span style="font-size: 18px">2、配置tftp服务</span></strong></span></p> <p dir="ltr"><span style="font-size: 16px"><strong><span style="font-size: 18px"> </span></strong><span style="font-size: 18px"><span style="font-size: 16px">1、yum -y install tftp tftp-server</span></span></span></p> <p dir="ltr"><span style="font-size: 16px"><span style="font-size: 18px"><span style="font-size: 16px"> <img src="//cto.wang/usr/uploads/2016/07/20160703180326-1.png" title="1432220692224836.png" alt="blob.png" /></span></span></span></p> <p dir="ltr"><span style="font-size: 16px"><span style="font-size: 18px"><span style="font-size: 16px"> 可以看到,由于tftp是瞬时服务进程,不能进行自我管理,需要通过超级服务进程进行管理,所以安装tftp-server时,超级服务进程程序xinetd被依赖。</span></span></span></p> <p dir="ltr"><span style="font-size: 16px"><span style="font-size: 18px"><span style="font-size: 16px"> 2、设置并确保超级服务进程开机启动。</span></span></span></p> <p dir="ltr"><span style="font-size: 16px"><span style="font-size: 18px"><span style="font-size: 16px"> <img src="//cto.wang/usr/uploads/2016/07/20160703180326-95.png" title="1432221171112760.png" alt="blob.png" /></span></span></span></p> <p dir="ltr"><span style="font-size: 16px"><span style="font-size: 18px"><span style="font-size: 16px"> <img src="//cto.wang/usr/uploads/2016/07/20160703180326-42.png" title="1432221354104247.png" alt="blob.png" width="641" height="294" style="width: 641px;height: 294px" /></span></span></span></p> <p dir="ltr"><span style="font-size: 16px"><span style="font-size: 18px"><span style="font-size: 16px"> chkconfig tftp</span></span></span>开启tftp服务</p> <p dir="ltr"> <img src="//cto.wang/usr/uploads/2016/07/20160703180327-5.png" title="1432221518130866.png" alt="blob.png" width="760" height="203" style="width: 760px;height: 203px" /></p> <p dir="ltr"> 3、tftp服务器测试</p> <p dir="ltr"> 新建一个文件,放到/var/lib/tftpboot/目录下,并在服务器本机进行测试。</p> <p dir="ltr"> <img src="//cto.wang/usr/uploads/2016/07/20160703180327-50.png" title="1432223008116806.png" alt="blob.png" width="308" height="178" style="width: 308px;height: 178px" /></p> <p dir="ltr"> 本机测试成功</p> <p dir="ltr"> 使用另外一台带有linux系统的客户端测试</p> <p dir="ltr"> <img src="//cto.wang/usr/uploads/2016/07/20160703180327-20.png" title="1432223236871340.png" alt="blob.png" width="492" height="137" style="width: 492px;height: 137px" /></p> <p dir="ltr"> 测试成功,至此tftp服务器配置完毕。</p> <p dir="ltr"> <span style="font-size: 18px"><strong>3、配置http服务</strong></span></p> <p dir="ltr"><span style="font-size: 18px"><strong> <span style="font-size: 16px"></span></strong><span style="font-size: 16px">1、yum -y install httpd</span></span></p> <p dir="ltr"> 2、设置httpd服务开机启动,开启httpd服务 </p> <p dir="ltr"> <img src="//cto.wang/usr/uploads/2016/07/20160703180327-45.png" title="1432223777504452.png" alt="blob.png" width="730" height="361" style="width: 730px;height: 361px" /></p> <p dir="ltr"> 创建/media/cdrom 目录并将系统安装光盘挂载至该目录,然后创建/var/www/html/centos/6/x86_64并绑定挂载至/media/cdrom,通过http服务器为pxe客户端提供安装源和ks文件</p> <p dir="ltr"> <img src="//cto.wang/usr/uploads/2016/07/20160703180327-2-1.png" title="1432224424108613.png" alt="blob.png" /></p> <p dir="ltr"> 用宿主机测试http服务器,看是否工作正常</p> <p dir="ltr"> <img src="//cto.wang/usr/uploads/2016/07/20160703180327-96.png" title="1432298233100874.png" alt="blob.png" /></p> <p dir="ltr"> http服务器测试成功!</p> <p dir="ltr"><span style="font-size: 20px"> <strong>4、制作kickstart.cfg文件</strong></span></p> <p dir="ltr"> 为实现系统安装过程的无人值守自动化安装,为了方便实验,以http服务器为基础制作ks文件</p> <p dir="ltr"> 1、执行yum -y install system-config-kickstart,安装完成后执行system-config-kickstart程序。</p> <p dir="ltr"> 2、点击File–>Open File–>root目录–>anaconda-ks.cfg(该ks文件由服务器端系统安装完后生成)–>点击Open载入ks文件。</p> <p dir="ltr"> <img src="//cto.wang/usr/uploads/2016/07/20160703180327-5-1.png" title="1432299875454425.png" alt="blob.png" width="748" height="489" style="width: 748px;height: 489px" /></p> <p dir="ltr"> 3、Basic Configuration(基础配置)</p> <p dir="ltr"> <img src="//cto.wang/usr/uploads/2016/07/20160703180327-31.png" title="1432300337974146.png" alt="blob.png" width="748" height="439" style="width: 748px;height: 439px" /></p> <p dir="ltr"> 4、Installation Method 安装方式</p> <p dir="ltr"> <img src="//cto.wang/usr/uploads/2016/07/20160703180328-52.png" title="1432301387133213.png" alt="blob.png" width="748" height="320" style="width: 748px;height: 320px" /> </p> <p dir="ltr"> 5、Boot Loader Options 默认</p> <p dir="ltr"> 6、配置分区信息</p> <p dir="ltr"> <img src="/upload/2z1r0xnhgca.png" title="1432358325933166.png" alt="blob.png" /></p> <p dir="ltr"> 7、Network Configuration 将网卡eth0 设置为dhcp模式</p> <p dir="ltr"> <img src="/upload/koyaagyxdrv.png" title="1432302099451203.png" alt="blob.png" width="706" height="150" style="width: 706px;height: 150px" /></p> <p dir="ltr"> 8、Authentication默认</p> <p dir="ltr"> 9、Firewall Configuration 关闭防火墙,关闭selinux</p> <p dir="ltr"> <img src="/upload/dt5lj04zke3.png" title="1432302221138771.png" alt="blob.png" width="704" height="210" style="width: 704px;height: 210px" /></p> <p dir="ltr"> 10、Display Configuration默认 </p> <p dir="ltr"> 11、Package Selection 默认,参照本机ks文件</p> <p dir="ltr"> 12、Pre-Installation Script和Post-Installation Script均默认设置。</p> <p dir="ltr"> 13、点击File–>Save–>修改文件名为centos-6.5-ks.cfg保存至/var/www/html/centos.ks(本人自定义目录)下</p> <p dir="ltr"> 14、编辑/var/www/html/centos-6.5-ks.cfg,指定repo源到我们的http服务器对应repo源路径</p> <p dir="ltr"> <img src="/upload/bt15vndzx0f.png" title="1432303478657261.png" alt="blob.png" /></p> <p dir="ltr"><span style="font-size: 20px"><strong> 5、提供PXE工作环境必须、内核以及其它所需</strong></span></p> <p dir="ltr"><span style="font-size: 20px"><strong> </strong><span style="font-size: 16px">1、首先,我们要将能够通过网络引导系统安装的文件pxelinux.0(类似于grub,是一种引导程序,但是它专为pxe模式下的网络系统部署提供引导)</span></span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> 1、安装提供该文件的程序:</span></span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> yum -y install syslinux</span></span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> 2、找到/usr/share/syslinux/pxelinux.0文件,并将其复制到/var/lib/tftpboot/目录下。</span></span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> <img src="/upload/wcopqlp0zum.png" title="1432305384127648.png" alt="blob.png" /></span></span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> 2、将系统镜像盘中pxe模式下专用的内核文件和initrd镜像文件件复制到tftp服务器相应目录中</span></span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> <img src="/upload/e14xs0iyfl4.png" title="1432305078284179.png" alt="blob.png" width="642" height="142" style="width: 642px;height: 142px" /></span></span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> 3、复制其它文件</span></span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> 1、将系统光盘镜像中的isolinux/目录下的boot.msg splash.jpg vesamenu.c32复制到/var/lib/tftpboot/目录下</span></span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> <img src="/upload/asb3kv0jheq.png" title="1432305885131488.png" alt="blob.png" width="713" height="158" style="width: 713px;height: 158px" /></span></span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> 2、将系统光盘镜像中的isolinux/目录下的isolinux.cfg文件拷贝至/var/lib/tftpboot/pxelinux.cfg/目录下,命名为default,用来引导客户端启动过程。</span></span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> <img src="/upload/xabzcmbksud.png" title="1432306279652200.png" alt="blob.png" width="664" height="101" style="width: 664px;height: 101px" /></span></span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> 修改/var/lib/tftpboot/pxelinux/default文件,指定ks文件的加载位置</span></span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> <img src="/upload/xlaa1re0cw0.png" title="1432352292134124.png" alt="blob.png" width="607" height="201" style="width: 607px;height: 201px" /></span></span></p> <p dir="ltr"><span style="font-size: 20px"><strong> 6、使用搭建好的pxe环境安装linux 6.5 系统</strong></span></p> <p dir="ltr"><strong><span style="font-size: 20px"> </span></strong><span style="font-size: 16px">1、将服务器虚拟主机和待安装系统虚拟主机网络接入方式选择为自定义:特定虚拟网络VMnet4</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="/upload/bssw4vtor4n.png" title="1432352536122146.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 2、到待安装系统虚拟主机上,进入bios,将网络启动设为首选</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="/upload/4dqcgd542he.png" title="1432352682884002.png" alt="blob.png" /> </span></p> <p dir="ltr"><span style="font-size: 16px"> 3、启动客户机</span></p> <p dir="ltr"><span style="font-size: 16px"> 进入安装界面</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="/upload/3p33xnocrba.png" title="1432354040110153.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 载入内核和initrd</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="/upload/bbskv0ozclr.png" title="1432354088918917.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 检索install.img</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="/upload/lvwjuzzwvxx.png" title="1432354169128127.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 配置网络</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="/upload/vrrbwshlyze.png" title="1432354209880370.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 自动创建分区</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="/upload/wszngqy3bsi.png" title="1432354303100566.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 依赖关系检查</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="/upload/qmyjqyaulvo.png" title="1432354332181034.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 开始安装</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="/upload/bnb30tynqss.png" title="1432354372658578.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 安装软件包</span></p> <p dir="ltr"><span style="font-size: 16px"> <img src="/upload/gloz2isre3v.png" title="1432354412407615.png" alt="blob.png" /></span></p> <p dir="ltr"><span style="font-size: 16px"> 等待安装完成即完成该实验!</span></p> <p dir="ltr"><span style="font-size: 16px"><br /></span></p> <p dir="ltr"></p> <p dir="ltr"><span style="font-size: 16px"><br /></span></p> <p dir="ltr"><span style="font-size: 16px"><br /></span></p> <p dir="ltr"><span style="font-size: 16px"> </span></p> <p dir="ltr"><span style="font-size: 16px"> </span></p> <p dir="ltr"><span style="font-size: 16px"> </span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> </span></span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 16px"> </span></span></p> <p dir="ltr"> </p> <p dir="ltr"> </p> <p dir="ltr"><span style="font-size: 16px"><span style="font-size: 18px"><span style="font-size: 16px"> </span></span></span></p> <p dir="ltr"><span style="font-size: 16px"><span style="font-size: 18px"><span style="font-size: 16px"> </span></span></span></p> <p dir="ltr"><span style="font-size: 16px"> </span></p> <p dir="ltr"><span style="font-size: 20px"><span style="font-size: 18px"><strong> </strong></span></span></p> <p dir="ltr"><span style="font-size: 16px"> </span></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信