Skip to main content
开放网络的先行者与推动者—星融元
加入我们技术支持(Support)  TEL:(+86)4000989811

配置指导:PXE无人值守自动化安装系统平台

PXE无人值守自动化安装系统平台

1 PXE使用场景

PXE,全名Pre-boot Execution Environment,预启动执行环境,通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统

  • 批量服务器的部署
  • 信息安全要求高,需要使用无盘系统(系统在特定的服务器上,而不在本地电脑)
  • 远程安装,通过BMC启动远程服务器,然后通过PXE启动本地系统

2 PXE工作流程

  • 客户机从自己的PXE网卡启动,向网络中的DHCP服务器索取IP,并搜寻引导文件的位置
  • DHCP服务器返回给客户机IP以及引导文件的位置
  • 客户机向网络中的TFTP服务器索取引导文件并执行该文件
  • 客户机根据引导文件的执行结果,通过TFTP服务器加载内核和文件系统
  • 进入安装画面,客户机根据自动应答配置文件完成操作系统的自动化部署

3 PXE必要组件

  • DCHP:动态主机配置协议,用于自动分配IP地址,定位引导文件
  • TFTP:简单文件传输协议,用于PXE预引导加载环境,提供pxelinux.0文件
  • FTP:文件传输协议,用于加载pxelinux.0文件执行的结果
  • kickstart:kickstart生成自动应答文件,无需人工干涉自动化装机

4 PXE服务器配置

主机系统IP地址软件
PXECentos7.6192.168.5.222PXE+TFTP+VSFTP+kickstart

服务器具体配置要求如下:

  • 至少2G内存
  • 至少2核CPU

5 环境准备

5.1 关闭SELinux

SELinux不关闭的情况下无法实现,会限制客户机和PXE服务器的通信。

[root@PXE ~]# setenforce 0
[root@PXE ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

5.2 关闭防火墙

防止安装时出现各个组件的端口不能访问的问题。

[root@PXE ~]# systemctl stop firewalld && systemctl disable firewalld                          

6 部署PXE

部署PXE的必要服务,并且修改相关服务的配置文件。

6.1 部署DHCP服务

[root@pxe ~]# yum -y install dhcp
[root@pxe ~]# vi /etc/dhcp/dhcpd.conf
subnet 192.168.5.0 netmask 255.255.255.0 {
        range 192.168.5.180 192.168.5.199;  #地址池
        option routers 192.168.5.1;  #网关
        option domain-name-servers 114.114.114.114; #DNS地址
        next-server 192.168.5.222;  #TFTP地址
        filename "pxelinux.0";   #引导文件
}
[root@pxe ~]# systemctl start dhcpd
[root@pxe ~]# systemctl enable dhcpd

6.2 部署TFTP服务

[root@pxe ~]# yum -y install tftp-server syslinux
[root@pxe ~]# vi /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
[root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
[root@pxe ~]# systemctl start tftp
[root@pxe ~]# systemctl enable tftp

6.3 部署VSFTP服务

[root@pxe ~]# yum -y install vsftpd
[root@pxe ~]# mkdir /var/ftp/centos7
[root@pxe ~]# mount /dev/cdrom /var/ftp/centos7/
[root@pxe ~]# cd /var/ftp/centos7/images/pxeboot/
[root@pxe pxeboot]# cp initrd.img vmlinuz  /var/lib/tftpboot/
[root@pxe ~]# systemctl start vsftpd
[root@pxe ~]# systemctl enable vsftpd

6.4 编辑启动菜单

[root@pxe ~]# cd /var/lib/tftpboot/
[root@pxe tftpboot]# mkdir pxelinux.cfg
[root@pxe tftpboot]# vi pexlinux.cfg/default
default auto
timeout 60
label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.5.222/centos7 ks=ftp://192.168.5.222/ks.cfg

6.5 装机测试

创建未安装系统的裸机:

裸机成功获取IP并且加载文件系统:

PXE批量部署成功:

7 kickstart无人值守

7.1 安装kickstart

安装kickstart并创建ks.cfg文件,这里我们直接给出了完整的ks.cfg配置文件。安装完成之后,可以跳过部署操作系统中的手动配置过程。配置文件中的root密码:tera123。

[root@pxe ~]# yum -y install system-config-kickstart
[root@pxe ~]# vi /var/ftp/ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$7PKyC0GQ$lcdaVO2JUK8wOCnSiMr7S0
# System language
lang en_US
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled

# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=ens160
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="ftp://192.168.5.222/centos7"
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all
# Disk partitioning information
autopart
ignoredisk --only-use=sda

%packages
@^minimal
@core
chrony
kexec-tools

%end

8 PXE自动化部署注意事项

8.1 安装虚拟机失败

安装虚拟机的时候要注意,非最小化安装,需要给虚拟机分配2G以上内存,否则会报错。

8.2 安装完成之后重启黑屏

虚拟机安装完成之后,重启卡在黑屏是因为通过图形化配置时ks.cfg文件没有生效,导致在安装的过程中引导装载程序失败。我们需要手动修改ks.cfg为文档里推荐的配置。

8.3 服务器无法进入PXE

如果要覆盖安装原有的操作系统,需要手动将启动顺序调整为网络启动,并且在安装完成之后改为本地硬盘启动。

8.4 硬盘分区

利用工具system-config-kickstart进行ks.cfg文件生成时,LVM无法支持。如果需要配置LVM,建议寻找一台通过LVM手动部署的主机,打开该主机root下的anaconda-ks.cfg文件,在此基础上修改并保存为我们需要的ks.cfg文件。

9 参考文献

PXE官网:https://pxe.org/

如有其它问题,请填写右侧需求表单联系我们。www.asterfusion.com

对星融元产品感兴趣?

立即联系!

返回顶部

© 星融元数据技术(苏州)有限公司 苏ICP备17070048号-2