Linux下搭建PXE自动化安装环境

目录:
1. 前言
2. 配置dhcpd
3. 配置tftpd
4. 配置httpd
5. 测试

1. 前言

现在企业采购的很多计算机都是没光驱的,怎么安装系统呢?另外,如何能快速大规模安装Linux服务器操作系统呢,有什么好办法吗?

答案是有的,那就是本文要说的:PXE。

整个安装的过程是这样的:PXE网卡启动 => DHCP获得IP地址 => 从TFTP上下载 pxelinux.0、vmlinuz、initr.img 等 => 引导系统进入安装步骤 => 通过PEX linux 下载ks.cfg文件并跟据ks.cfg自动化安装系统 => 完成。

接下来,我们将PXE环境中的各个步骤分解开,逐一部署。

服务器环境描述:

IP:192.168.0.2
GW: 192.168.0.1
NETMASK: 255.255.255.0

2. 配置dhcpd

dhcpd的作用就是在客户端启动时,从中分配IP,便于继续后面的网络化自动安装。首先,我们需要安装 dhcp rpm包。
rpm -ivhU dhcp*rpm
[yejr@imysql.cn ~yejr]# cat /etc/dhcpd.conf
option space PXE;
option PXE.mtftp-ip               code 1 = ip-address;
option PXE.mtftp-cport            code 2 = unsigned integer 16;
option PXE.mtftp-sport            code 3 = unsigned integer 16;
option PXE.mtftp-tmout            code 4 = unsigned integer 8;
option PXE.mtftp-delay            code 5 = unsigned integer 8;
option PXE.discovery-control      code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr   code 7 = ip-address;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
option vendor-class-identifier "PXEClient";
vendor-option-space PXE;
option PXE.mtftp-ip 0.0.0.0;
filename "pxelinux.0";
next-server 192.168.0.2;
}
ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
ddns-updates on;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers                  192.168.0.1;
option subnet-mask              255.255.255.0;
option domain-name-servers      202.106.0.20;
option time-offset              28800;
pool {
range                   192.168.0.3 192.168.0.253;
default-lease-time      200;
max-lease-time          400;
allow                   members of "pxeclients";
}
}

其中,next-server就是指定tftp服务器的地址,filename是pxe引导文件。

3. 配置tftpd

安装rpm包,修改 xinet.d 下的 tftpd 配置文件,然后配置 tftpd 服务端环境。
[yejr@imysql.cn ~yejr]# rpm -ivhU syslinux*rpm tftp*rpm
[yejr@imysql.cn ~yejr]# mkdir -p /var/www/html/as4u7 /tftpboot/
[yejr@imysql.cn ~yejr]# mount path/as4u7_x86_64.iso -t iso9660 -o loop /var/www/html/as4u7
[yejr@imysql.cn ~yejr]# cd /var/www/html/as4u7
[yejr@imysql.cn ~yejr]# cp isolinux/vmlinuz isolinux/initrd.img /usr/lib/syslinux/pxelinux.0 /tftpboot
[yejr@imysql.cn ~yejr]# mkdir -p /tftpboot/pxelinux.cfg/
[yejr@imysql.cn ~yejr]# cat /tftpboot/pxelinux.cfg/default
default local
prompt 1
timeout 600
label local
localboot 0
label as4u6_x86_64
kernel vmlinuz
append netmask=255.255.255.0 gateway=192.168.0.2 ksdevice=eth0 initrd=initrd.img nofb text ks=http://192.168.0.2/ks.cfg
[yejr@imysql.cn ~yejr]# cat /etc/xinetd.d/tftp
service tftp
{
socket_type             = dgram
protocol                = udp
wait                    = yes
user                    = root
server                  = /usr/sbin/in.tftpd
server_args             = -s /tftpboot
disable                 = no
per_source              = 11
cps                     = 100 2
flags                   = IPv4
}
这里需要注意的是,/etc/xinetd.d/tftp 文件中的 disable 改成 no。另外,我们也可以采用其他网络方式安装,常见的有 HTTP、NFS、FTP,在这里,我们采用熟悉的 HTTP 方式。


4. 配置httpd以及pxe自动安装脚本

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfdzz.html