Linux PXE

对于多台服务器部署Linux,传统的安装方法既费时费力,效率低下, 现在简要说明如何通过PXE方式实现Linux批量部署.

请在操作前确定同一网络中没有其他DHCP服务器 , 没有其他行为控制设备, 以免对演示造成干扰 ;

请确保网络线路速度在1000Mbps以上,否则部署时间可能太长.

这次演示以CentOS 为例, 其他版本linux过程类似.

服务端:

System platform:CentOS 6.5 x64

网络配置: IP 地 址192.168.137.6 ,关闭SElinux

系统服务:DHCP , TFTP ,HTTP ,kickstart

配置步骤:

1. iptables放通 TCP 80 , UDP 67 ,68,69端口 ,添加如下内容

-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

-A INPUT -m state –state NEW -m udp -p udp –dport 67 -j ACCEPT

-A INPUT -m state –state NEW -m udp -p udp –dport 68 -j ACCEPT

-A INPUT -m state –state NEW -m udp -p udp –dport 69 -j ACCEPT

接着/etc/init.d/iptables restart即可

2. 安装并配置httpd服务

可以参考https://www.roamway.com/123.html 中Apache的安装.

3. 将原装系统光盘放入光驱,并挂载到/mnt下

mount /dev/cdrom /mnt

mount

4. 复制光盘全部内容至http 的根目录/var / www / html /

cp -r / mnt / / var / www / html /

5. 启动httpd服务

service httpd start

httpd

6.安装并配置TFTP服务

yum install tftp-server

编辑tftp配置文件 ,将其中的disable选项改为no

vim /etc/xinetd.d/tftp

tftp

修改完成后,保存退出

7.启动tftp服务

/etc/init.d/xinetd restart

8.配置支持PXE的启动程序

复制pxelinux.0 文件至/var/lib/tftpboot/ directory

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

复制iso 镜像中的/image/pxeboot/initrd.img 和vmlinux 至/var/lib/tftpboot/ 文件夹中

cp / var / www / html / cdrom / images / pxeboot /{initrd.img,vmlinuz} /var / lib / tftpboot /

vmlinuz

复制镜像中的/isolinux/*.msg /var / lib / tftpboot / 文件夹中

cp /var/www/html/cdrom/isolinux/*.msg /var/lib/tftpboot/

msg

/var / lib / tftpboot / 中新建一个pxelinux.cfg目录

mkdir /var/lib/tftpboot/pxelinux.cfg

iso 镜像中的/isolinux 目录中的isolinux.cfg复制到pxelinux.cfg目录中,同时更改文件名称为default

cp /var/www/html/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

vim /var/lib/tftpboot/pxelinux.cfg/default ,填写如下内容

  1. default ks
  2. prompt 1
  3. timeout 6
  4. display boot.msg
  5. F1 boot.msg
  6. F2 options.msg
  7. F3 general.msg
  8. F4 param.msg
  9. F5 rescue.msg
  10. label linux
  11. kernel vmlinuz
  12. append initrd=initrd.img
  13. label test
  14. kernel vmlinuz
  15. append initrd=initrd.img test
  16. label ks
  17. kernel vmlinuz
  18. append ks=http://192.168.137.6/ks.cfg initrd=initrd.img
  19. label local
  20. localboot 1
  21. label memtest86
  22. kernel memtest
  23. append –

9.安装并配置DHCP服务

yum -y install dhcp

cp -f /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

vim /etc/dhcp/dhcpd.conf 填写如下内容

编辑如下内容,然后保存退出:

  1. ddns-update-style interim;
  2. ignore client-updates;
  3. filename “pxelinux.0”;
  4. next-server 192.168.137.6;
  5. subnet 192.168.137.0 netmask 255.255.255.0 {
  6. range dynamic-bootp 192.168.137.201 192.168.137.210;
  7. # option broadcast-address 10.254.239.31;
  8. # option routers rtr-239-32-1.example.org;
  9. option routers 192.168.137.1;
  10. option subnet-mask 255.255.255.0;
  11. default-lease-time 600;
  12. max-lease-time 7200;
  13. }

 

10.启动dhcp服务

/etc/init.d/dhcpd start

dhcp_start

11 .桌面环境安装并配置kickstart

yum install system-config-kickstart

system-config-kickstart

设置语言,键盘,时区,Root密码,安装完毕后重启等。

config1

设置HTTP方式的安装

config2

设置引导方式

config3

设置好分区

config4

软件包选择,根据自己的需要勾选

config5

 

生成ks.cfg 文件,保存在/var / www / html / 文件夹下

config6

 

客户端:

网络配置: IP自动获取 ,并保证和服务端物理连接正常。

启动方式:PXE为首选项,以下是大概过程.

config7

config8

 

安装过程中可以使用tcpdump看到客户端和服务端通信情况,其中服务器IP为192.168.137.6;

客户端获取的IP为192.168.137.202

config9

客户端安装完成后,会自动重新启动,以下是重启后的登录界面.

config10

如果多台服务器同时部署linux ,请将第一启动项设置为PXE . 然后启动,即可批量部署.

Leave a Reply