PXE网络自动化装机

文章目录

  • 一.流程拓扑
  • 二. 环境准备
    • 1. PXE_Server系统安装,如:192.168.1.10
    • 2. PXE_Server:部署dhcp、tftp、http服务
    • 3. PXE_Client: 须和PXE_Server在同一局域网内
  • 三. 部署DHCP服务
    • 1. 一次性安装PXE_Server端相关软件及依赖
    • 2. 修改配置文件
    • 3. 重启dhcp服务
  • 四.构建TFTP服务,提供引导文件及系统启动文件
    • 1. 安装tftp-server,重启tftp服务
    • 2. 部署pxelinux.0引导文件(安装syslinux获得)
    • 3. 部署菜单文件
    • 4. 部署图形模块(vesamenu.c32)与黑色背景图片(splash.png)
    • 5. 部署驱动程序(initrd.img)与启动内核(vmlinuz)
    • 6. 修改菜单文件default内容
    • 7. 初步验证,可启动到系统lable标签界面(此步可省略)
  • 五. 构建web服务(http),共享光盘内容(网络安装源)
    • 1. 安装软件httpd,重启httpd服务
    • 2. 创建挂载共享目录/var/www/html/centos7.8,挂载光盘
    • 3. 利用http服务共享:无人值守自动应答文件ks.cfg
    • 4. 修改菜单文件default,指定ks.cfg应答文件路径
    • 5. 最终验证: pxe_client自动化装机
  • 六(补). 通过system-config-kickstart,图形化生成ks.cfg

一.流程拓扑

PXE网络自动化装机_第1张图片

二. 环境准备

1. PXE_Server系统安装,如:192.168.1.10

  • a. 系统安装:CentOS-7-x86_64-Minimal-2003.iso
  • b. 禁用firewall防火墙

2. PXE_Server:部署dhcp、tftp、http服务

  • a. DHCP服务: 分配IP地址,指定next-server及pxelinux.0引导文件
  • b. TFTP服务: 引导程序下载,提供启动文件,指定ks应答文件url
  • c. HTTP服务(或FTP/NFS): ks.cfg自动应答文件、提供iso安装源
  • d. 上传所需资源:
    CentOS-7-x86_64-Minimal-2003.iso # http共享:网络装机安装源
    或:通过挂载本机/dev/cdrom也可共享网络安装源
    CentOS-7-x86_64-DVD-2003.iso # 本地离线yum源
    或:推荐:提前准备dhcp、tftp、http、syslinux(安装提供pxelinux.0文件)等服务离线包;
    配置好的ks.cfg
    --------> 最后打包:dhcp_tftp_http_syslinux.tar.gz、 ks.cfg应答文件

3. PXE_Client: 须和PXE_Server在同一局域网内

三. 部署DHCP服务

1. 一次性安装PXE_Server端相关软件及依赖

tar -xvf dhcp_tftp_http_syslinux.tar.gz
yum -y install pxe_soft/*.rpm

2. 修改配置文件

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
	subnet 192.168.1.0 netmask 255.255.255.0 {  	# 网段、子网掩码
  		range 192.168.1.10  192.168.1.30;			# 分配的IP范围
  		option domain-name-servers 114.114.114.114;		# 指定客户端DNS服务器
  		option routers 192.168.1.1;			# 网关地址
  		default-lease-time 600;				# IP租期,默认
  		max-lease-time 7200;
  		next-server 192.168.1.10;		# 指定客户端访问下一个服务器
		filename "pxelinux.0";  		# 指定网卡引导文件名称(装机说明)
						# pxelinux.0为二进制文件,安装软件syslinux获得
	} 

3. 重启dhcp服务

systemctl restart/enable/status dhcpd

四.构建TFTP服务,提供引导文件及系统启动文件

  • TFTP:简单的文件传输协议,默认端口69
  • 默认共享数据路径: /var/lib/tftpboot

1. 安装tftp-server,重启tftp服务

yum -y install tftp-server`			# 第二步已安装
systemctl restart/enable/status tftp

2. 部署pxelinux.0引导文件(安装syslinux获得)

yum -y install syslinux-4.05-15.el7.x86_64.rpm 		# 第二步已安装
cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
ls /var/lib/tftpboot/
		pxelinux.0 ---> 引导 ---> 客户端读取菜单文件 /var/lib/tftpboot/pxelinux.cfg/default

3. 部署菜单文件

mkdir /var/lib/tftpboot/pxelinux.cfg	  # 创建菜单文件的目录
# 获取菜单文件:以光盘内容为模板,获得(挂载)后并改名default
mount  /dev/cdrom  /mnt/	# 挂载光驱,以读取光盘内容
或:mount *.iso  /mnt/
cd /mnt/isolinux
cp  isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default

4. 部署图形模块(vesamenu.c32)与黑色背景图片(splash.png)

cp vesamenu.c32 splash.png /var/lib/tftpboot/

5. 部署驱动程序(initrd.img)与启动内核(vmlinuz)

cp  initrd.img  vmlinuz    /var/lib/tftpboot/
# 验证:
ls /var/lib/tftpboot/  
pxelinux.0 引导文件  	pxelinux.cfg/default 菜单文件  
splash.png 背景图片  	vesamenu.c32         图形模块  
vmlinuz    启动内核 		initrd.img           驱动程序
# 启动文件准备完毕,umount /mnt释放挂载

6. 修改菜单文件default内容

vim /var/lib/tftpboot/pxelinux.cfg/default 		# set nu行号显示
	1 default vesamenu.c32				# 默认加载图形模块
	2 timeout 300						# 读秒时间,30秒
	10 menu background splash.png		# 背景图片
	11 menu title CentOS 7 				# 菜单界面标题
	61 label linux
	62 menu label ^Install CentOS 7		# 选项显示内容
	!!!加行  menu default		# 读秒结束后的默认选择
	63 kernel vmlinuz					# 加载内核
	64 append initrd=initrd.img			# 加载驱动
	注意:65行后,66行开始全删(多余标签)

7. 初步验证,可启动到系统lable标签界面(此步可省略)

  • a. 重启必要的服务
systemctl  restart  dhcpd	# 注意关闭firewalld防火墙
systemctl  restart  tftp
  • b. 测试验证
    客户端能成功进入启动安装菜单界面……
    PXE网络自动化装机_第2张图片

五. 构建web服务(http),共享光盘内容(网络安装源)

1. 安装软件httpd,重启httpd服务

yum  -y install httpd		# 第二步已安
systemctl restart/enable/status httpd

2. 创建挂载共享目录/var/www/html/centos7.8,挂载光盘

mkdir /var/www/html/centos7.8
mount /dev/cdrom   /var/www/html/centos7.8
# 若该pxe_server长期提供pxe服务,可考虑开机自动mount
vim  /etc/fstab
	/dev/cdrom /var/www/html/centos7.8 iso9660 defaults 0 0

3. 利用http服务共享:无人值守自动应答文件ks.cfg

  • ks.cfg获取方式:
    a. 可提前准备好(推荐): /root/ks.cfg
    b.可拷贝/root/anaconda-ks.cfg: 进行编辑
    c. 安装system-config-kickstart,图形化配置
cp  /root/ks.cfg  /var/www/html/
ls /var/www/html/ 
	centos7.8 共享网络安装源     ks.cfg 自动应答文件

4. 修改菜单文件default,指定ks.cfg应答文件路径

vim /var/lib/tftpboot/pxelinux.cfg/default
	65 append initrd=initrd.img	 ks=http://192.168.1.10/ks.cfg

5. 最终验证: pxe_client自动化装机

  • a. 重启所需服务
systemctl restart dhcpd
systemctl restart tftp
systemctl restart httpd
  • b. 启动新服务器,选择pxe网络安装
    装机:
    1)自动获取IP地址,连接指定的TFTP服务器
    2)下载并运行pxelinux.0启动文件
    3)读取 pxelinux.cfg/default 菜单文件,显示图形引导菜单
    4)待读秒30s超时自动启动,开始读取ks.cfg自动应答安装
    PXE网络自动化装机_第3张图片

六(补). 通过system-config-kickstart,图形化生成ks.cfg

- a. 安装图形工具system-config-kickstart(需系统支持图形化)
yum -y install system-config-kickstart
- b. 以英文en运行,图形配置应答文件
LANG=en system-config-kickstart # 启动图形界面
- c. 点击”软件包选择”,查看是否有包可以进行选择
无包可选 —> 需要yum仓库临时支持:

vim  /etc/yum.repos.d/local.repo
	[development]		# 标识必须为[development]
	name=CentOS-7.8-mini
	baseurl="file:///var/www/html/centos7.8"
	enabled=1
	gpgcheck=0

- d.运行LANG=en system-config-kickstart,开始配置
1 选择设置语言、时区、root密码、勾选自动重启、字符界面…
2 选择全新安装、安装来源 http共享: 192.168.1.10 centos7.8
3 选择全新的启动程序
4 清楚启动记录、删除现有分区、初始化标签(全勾选第1个)
add 配置分区 # 此处涉及分区,根据实际需要进行配置!!!
PXE网络自动化装机_第4张图片
5 添加网卡: ens33 dhcp类型
6 验证:默认
7 关闭selinux,开放防火墙firewall(勾选:信任ssh服务)
8 显示配置: 取消勾选,不安装图形化
9 自定义装包: 最小化安装,勾选Core
10 预安装脚本
11 安装后脚本: 例:
在这里插入图片描述
- e. File保存 -> root/ks.cfg
vim /root/ks.cfg # 可查看生成的应答文件,进行再编辑

你可能感兴趣的:(自动化)