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
4. 复制光盘全部内容至http 的根目录/var / www / html / 下
cp -r / mnt / / var / www / html /
5. 启动httpd服务
service httpd start
6.安装并配置TFTP服务
yum install tftp-server
编辑tftp配置文件 ,将其中的disable选项改为no
vim /etc/xinetd.d/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 /
复制镜像中的/isolinux/*.msg 至/var / lib / tftpboot / 文件夹中
cp /var/www/html/cdrom/isolinux/*.msg /var/lib/tftpboot/
在/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 ,填写如下内容
- default ks
- prompt 1
- timeout 6
- display boot.msg
- F1 boot.msg
- F2 options.msg
- F3 general.msg
- F4 param.msg
- F5 rescue.msg
- label linux
- kernel vmlinuz
- append initrd=initrd.img
- label test
- kernel vmlinuz
- append initrd=initrd.img test
- label ks
- kernel vmlinuz
- append ks=http://192.168.137.6/ks.cfg initrd=initrd.img
- label local
- localboot 1
- label memtest86
- kernel memtest
- 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 填写如下内容
编辑如下内容,然后保存退出:
- ddns-update-style interim;
- ignore client-updates;
- filename “pxelinux.0”;
- next-server 192.168.137.6;
- subnet 192.168.137.0 netmask 255.255.255.0 {
- range dynamic-bootp 192.168.137.201 192.168.137.210;
- # option broadcast-address 10.254.239.31;
- # option routers rtr-239-32-1.example.org;
- option routers 192.168.137.1;
- option subnet-mask 255.255.255.0;
- default-lease-time 600;
- max-lease-time 7200;
- }
10.启动dhcp服务
/etc/init.d/dhcpd start
11 .桌面环境安装并配置kickstart
yum install system-config-kickstart
system-config-kickstart
设置语言,键盘,时区,Root密码,安装完毕后重启等。
设置HTTP方式的安装
设置引导方式
设置好分区
软件包选择,根据自己的需要勾选
生成ks.cfg 文件,保存在/var / www / html / 文件夹下
客户端:
网络配置: IP自动获取 ,并保证和服务端物理连接正常。
启动方式:PXE为首选项,以下是大概过程.
安装过程中可以使用tcpdump看到客户端和服务端通信情况,其中服务器IP为192.168.137.6;
客户端获取的IP为192.168.137.202
客户端安装完成后,会自动重新启动,以下是重启后的登录界面.
如果多台服务器同时部署linux ,请将第一启动项设置为PXE . 然后启动,即可批量部署.