资源列表
操作系统 | 配置 | 主机名 | IP |
---|---|---|---|
CentOS7.3.1611 | 2C4G | pxe | 192.168.207.131 |
基础环境
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭内核安全机制
setenforce 0
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
一、搭建PXE远程安装服务器
准备 CentOS 7 安装源
CentOS 7 的网络安装源一般通过 HTTP、FTP 协议发布,另外也支持 NFS(Network File System,网络文件系统)协议
yum -y install vsftpd
mkdir /var/ftp/centos7
cp -rf /media/cdrom/* /var/ftp/centos7/
systemctl start vsftpd
systemctl enable vsftpd
安装并启用 TFTP 服务
TFTP 服务由 tftp-server 软件包提供,配置文件位于/etc/xinetd.d/tftp。配置时只要将 “disable = yes”改为“disable = no”,然后启动 TFTP 服务即可
yum -y install tftp-server
[root@192 ~]# cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
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
}
#######################################################################
systemctl start tftp
systemctl enable tftp
准备 Linux 内核、初始化镜像文件
用于 PXE 网络安装的 Linux 内核、初始化镜像文件可以从 CentOS 7 系统光盘获得, 分别为 vmlinuz 和 initrd.img,位于文件夹 images/pxeboot 下。找到这两个文件并将其复制 到 tftp 服务的根目录下
cd /media/cdrom/images/pxeboot
cp vmlinuz initrd.img /var/lib/tftpboot
准备 PXE 引导程序
用于 PXE 网络安装的引导程序为 pxelinux.0,由软件包 syslinux 提供。安装好软件包 syslinux,然后将文件 pxelinux.0 也复制到 tftp 服务的根目录下
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
安装并启用 DHCP 服务
yum -y install dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
# 在/etc/dhcp/dhcpd.conf中添加
# next-server指定TFTP 服务器的地址
# 指定 PXE 引导程序的文件名
######################################################
subnet 192.168.207.0 netmask 255.255.255.0 {
range 192.168.207.20 192.168.207.30;
option routers 192.168.207.2;
next-server 192.168.207.131;
filename "pxelinux.0";
}
######################################################
systemctl start dhcpd
systemctl enable dhcpd
配置启动菜单文件
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认 的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单 配置可参考以下操作手动建立
上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。 其中,prompt 用来设置是否等待用户选择;label 用来定义并分隔启动项;kernel 和 append 用来定义引导参数。引导入口的个数及内容根据需要自行定义。例如,实现无人值守安装时 只需要一个入口就够了
mkdir /var/lib/tftpboot/pxelinux.cfg
vi /var/lib/tftpboot/pxelinux.cfg/default
##################################################################################
[root@192 ~]# cat /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.207.131/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.207.131/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.207.131/centos7
##################################################################################
验证 PXE 网络安装
搭建好 PXE 远程安装服务器以后,就可以使用客户机进行安装测试了。对于新购买的 服务器或 PC 裸机,一般不需要额外设置;若要为已有系统的主机重装系统,则可能需要修 改 BIOS 设置,将“Boot First”设为“NETWORK”或“LAN”,然后重启主机;若使用 VMware 创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时会报错。
如果服务器配置正确,网络连接、PXE 支持等都没有问题,则客户机重启后将自动配 置 IP 地址,然后从 TFTP 服务器中获取引导程序 pxelinux.0,并根据引导菜单配置提示用 户指定启动入口
在提示字串“boot:”后直接按 Enter 键(或执行“auto”命令),将会进入默认的图形安装入 口;若执行“linux text”命令,则进入文本安装入口;若执行“linux rescue”命令,则进入救援 模式。
二、实现 Kickstart 无人值守安装
在 CentOS 7 系统中安装 system-config-kickstart 工具之后,即可通过图形化向导工具 来配置安装应答文件。如果用户对自动应答文件的配置比较熟悉,也可以直接编辑 CentOS 7 安装后自动创建的应答文件(/root/anaconda-ks.cfg),根据需要适当修订后使用
配置安装应答参数
通过桌面菜单“应用程序”→“系统工具”→“Kickstart”即可打开“Kickstart 配置程序”窗口。 在“Kickstart 配置程序”窗口中,可以针对基本配置、安装方法、引导装载程序选项、分区信 息、网络配置等各种安装设置进行指定
或者在命令行输入以下命令调出配置窗口
system-config-kickstart
网络配置及防火墙配置,在“网络配置”界面中,添加一个网络设备“ens33”,将网络类型设为“DHCP”。
在“防火墙配置”界面中,可以选择禁用 SELinux、禁用防火墙
软件包选择
CentOS 7 系统开始不再提供软件包的选择,如图 6.6 所示。如果需要安装软件包,可 以根据需要将/root/anaconda-ks.cfg 的软件包安装脚本复制到 ks.cfg 文件中,只需要复 制%packages 到%end 部分即可,在%packages 到%end 之间,包含以@开头的软件包列 表,将不需要的软件名删除,剩下的就是系统会自动安装的软件包。例如,仅保留以下内容 即为采用最小化安装
%packages @^minimal %end
安装后脚本
rm -f /etc/yum.repos.d/* echo '[ftp] name=ftp baseurl=ftp://192.168.207.131/centos7 enabled=1 gpgcheck=0' > /etc/yum.repos.d/kgc.repo
保存自动应答文件
选择“Kickstart 配置程序”窗口的“文件”→“保存”命令,指定目标文件夹、文件名,将配 置好的应答参数保存为文本文件,如/root/ks.cfg。以后若要修改此应答配置,可以在 “Kickstart 配置程序”窗口中打开进行调整,或者直接用 VI 等文本编辑工具进行修改。
#platform=x86, AMD64, 或 Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard 'us' # Root password rootpw --iscrypted $1$5wSIbuZq$31QjMnWWZq1cmysez2Mcf0 # System language lang zh_CN # Firewall configuration firewall --disabled # System authorization information auth --useshadow --passalgo=sha512 # Use CDROM installation media cdrom # Use graphical install graphical firstboot --disable # SELinux configuration selinux --disabled # Network information network --bootproto=dhcp --device=ens33 # Reboot after installation reboot # System timezone timezone Asia/Shanghai # System bootloader configuration bootloader --location=mbr # Partition clearing information clearpart --all # Disk partitioning information part /home --fstype="xfs" --size=4096 part / --fstype="xfs" --size=10240 part swap --fstype="swap" --size=2048 part /boot --fstype="xfs" --size=500 %post --interpreter=/bin/bash rm -f /etc/yum.repos.d/* echo '[ftp] name=ftp baseurl=ftp://192.168.207.131/centos7 enabled=1 gpgcheck=0' > /etc/yum.repos.d/kgc.repo %end %packages @^minimal %end
启用自动应答文件
在 PXE 远程安装服务器中,将上一节建立的应答文件复制到/var/ftp/centos7 目录下, 使客户机能够通过 ftp://192.168.207.131/centos7/ks.cfg 访问;然后编辑引导菜单文件 default, 添加 ks 引导参数以指定 ks.cfg 应答文件的 URL 路径
cp /root/ks.cfg /var/ftp/ks.cfg [root@192 ~]# cat /var/lib/tftpboot/pxelinux.cfg/default default auto prompt 0 label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.207.131/centos7 ks=ftp://192.168.207.131/ks.cfg
注意:如果是在 VMware 虚拟机环境下,需要禁用 VMware 的 DHCP 功能;否则 安装文件将无法加载