文章目录
一.流程拓扑
二. 环境准备
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. 测试验证
客户端能成功进入启动安装菜单界面……
五. 构建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自动应答安装
六(补). 通过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 配置分区 # 此处涉及分区,根据实际需要进行配置!!!
5 添加网卡: ens33 dhcp类型
6 验证:默认
7 关闭selinux,开放防火墙firewall(勾选:信任ssh服务)
8 显示配置: 取消勾选,不安装图形化
9 自定义装包: 最小化安装,勾选Core
10 预安装脚本
11 安装后脚本: 例:
- e. File保存 -> root/ks.cfg
vim /root/ks.cfg # 可查看生成的应答文件,进行再编辑