Loading... <p><span style="font-size: 24px"><strong>一、前言</strong></span></p> <p style="text-indent: 2em">在生产环境中,我们经常遇到需要部署部署多台服务器。如果我们每部署一台服务器都要拿着系统盘到机房部署,守在服务器面前,那么我们的效率是十分低下的。况且有时候机房并不在我们身边。那么我们可以通过让机房值班人员为每台服务器配置好远程管理卡,运维人员通过远程管理卡,远程登入服务器进行操作。</p> <p><span style="font-size: 24px"><strong>二、pxe原理</strong></span></p> <p style="text-indent: 2em">pxe原理是通过服务器上网卡中支持的pxe启动,通过广播的方式获取ip地址与下一个服务器的ip地址,pxe客户端在tftp服务器上下载pxelinux.0文件,pxe客户端根据pxelinux.0的执行结果,通过tftp服务器加载kernel及ramdisk文件,从而引导系统。具体原理可查考下图</p> <p><img title="1441730755523732.png" alt="1.png" src="//cto.wang/usr/uploads/2016/07/20160703160727-17.png" /></p> <p><strong><span style="font-size: 24px">三、开始部署pxe服务器</span></strong></p> <p><strong><span style="font-size: 18px">3.1 部署dhcp服务</span></strong></p> <p><strong>3.1.1 安装dhcp服务器并关闭selinux及iptables</strong></p> <pre class="brush:bash;toolbar:false">[root@localhost ~]# yum install dhcp –y [root@localhost ~]# setenforce 0 #设置selinux为permissive模式 [root@localhost ~]# getenforce Permissive [root@localhost ~]# service iptables stop #关闭防火墙</pre> <p></p> <p><strong>3.1.2 配置dhcp服务器</strong></p> <pre class="brush:bash;toolbar:false">[root@localhost ~]# mv /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf subnet 192.168.19.0 netmask 255.255.255.0 { range 192.168.19.100 192.168.19.200; #dhcp地址池 filename "pxelinux.0" #下一个寻找的文件 server-name "192.168.19.136" #下一个寻找的服务器地址 }</pre> <p><strong>3.1.3设置开机启动</strong></p> <pre class="brush:bash;toolbar:false">[root@localhost ~]# chkconfig dhcpd on [root@localhost ~]# chkconfig --list dhcpd dhcpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@localhost ~]# service dhcpd start</pre> <p><span style="font-size: 18px"><strong>3.2 配置tftp服务器</strong></span></p> <pre class="brush:bash;toolbar:false"> [root@localhost ~]# yum install -y tftp-server service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no #设置tftp-server开机自动启动 per_source = 11 cps = 100 2 flags = IPv4 }</pre> <p><span style="font-size: 18px"><strong>3.3配置pxe工作环境</strong></span></p> <p><strong>3.3.1安装syslinux</strong></p> <pre class="brush:bash;toolbar:false">[root@localhost ~]# yum install -y syslinux [root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/</pre> <p><strong>3.3.2 安装httpd <br /></strong></p> <pre class="brush:bash;toolbar:false">[root@localhost tftpboot]# yum install -y httpd [root@localhost tftpboot]# chkconfig httpd on [root@localhost tftpboot]# service httpd start</pre> <p><strong>3.3.3提供kernel,ramdisk等文件</strong></p> <pre class="brush:bash;toolbar:false">[root@localhost tftpboot]# mount /dev/sr0 /mnt/cdrom [root@localhost tftpboot]# mount --bind /mnt/cdrom /var/www/html/centos/x86_64 [root@localhost tftpboot]# cd /mnt/cdrom/images/pxeboot/ [root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/ [root@localhost isolinux]# cd /mnt/cdrom/isolinux/ [root@localhost isolinux]# cp vesamenu.c32 boot.msg splash.jpg /var/lib/tftpboot/ [root@localhost isolinux]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@localhost isolinux]# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default</pre> <p><strong>3.3.4提供kickstart文件</strong></p> <p><img title="1441731318541214.png" alt="4.png" src="//cto.wang/usr/uploads/2016/07/20160703160727-85.png" /></p> <pre class="brush:bash;toolbar:false">[root@localhost tftpboot]# yum install -y system-config-kickstart [root@localhost tftpboot]# cp /root/ks.cfg /var/www/html/ #kickstart文件部分示例 # Firewall configuration firewall --enabled --service=ssh # Install OS instead of upgrade install # Use network installation # Firewall configuration firewall --enabled --service=ssh # Install OS instead of upgrade install # Use network installation url --url="http://192.168.19.136/centos/x86_64" #指定安装源 # Root password rootpw --plaintext centos #设置root密码 # System authorization information auth --useshadow --passalgo=md5 # Use text mode install text #文本模式安装 firstboot --disable # System keyboard keyboard us #键盘类型 # System language lang en_US #语言 # SELinux configuration selinux --enforcing #selinux模式 # Installation logging level logging --level=info # Reboot after installation reboot # System timezone timezone Asia/Shanghai # Network information network --bootproto=dhcp --device=eth0 --onboot=on #连网方式 # System bootloader configuration bootloader --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda" # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype="ext4" --size=200 #创建/boot分区 part / --fstype="ext4" --grow --size=1 #创建/ 分区</pre> <p><span style="font-size: 24px"><strong>四、测试</strong></span></p> <p>关闭vmware的dhcp功能</p> <p><img title="1441731374894155.png" alt="2.png" src="//cto.wang/usr/uploads/2016/07/20160703160728-53.png" /></p> <p>从pxe启动后,设置ks文件</p> <p><img title="1441731410149160.png" alt="3.png" src="//cto.wang/usr/uploads/2016/07/20160703160728-73.png" /></p> <p>安装</p> <p><img title="1441731426789326.png" alt="5.png" src="//cto.wang/usr/uploads/2016/07/20160703160728-81.png" /></p> <p>参考文献:http://www.cnblogs.com/mchina/p/centos-pxe-kickstart-auto-install-os.html</p> <p> </p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信