部署PXE远程安装服务
PxE(预启动执行环境,在操作系统之前运行)是由Intel公司开发的网络引导技术,工作在client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。
PXE批量部署的优点
- 规模化:同时装配多台服务器
- 自动化:安装系统、配置各种服务
- 远程实现:不需要光盘、U盘等安装介质
搭建PXE网络体系的前提条件
客户端:
1.客户机的网卡要支持ExE协议(集成BOOTROM心片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BI设置中允许从 netwok或 LAN 启动即可。
服务端:
2.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。
3.服务器要通过 TETP服务(简单文件传输协议) 来提供系统内核和引导镜像文件的下载。
PXE安装前的配置
PXE装机所需的文件
文件 | 位置 | 作用 |
---|---|---|
pxelinux.0 | 来自syslinux程序 | 引导程序的配置文件 |
vmlinuz | 从光盘中获取,位于 isolinux 目录下 | 内核文件 |
initrd.img | 从光盘中获取,位于 isolinux 目录下 | 系统启动镜像文件 |
default | 需要手写 | 引导程序的配置文件 |
搭建PXE过程中使用的服务和程序
DHCP服务
DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,同时也能配合DNS解析使用,让指定范围内的客户机能够自动获取解析域名的后缀。
DHCP作为用应用层协议,它依靠并且使用着传输层中udp协议。对于DHCP中分为客户端,和服务端。客户端用的端口为68 ,服务端的端口为67.
vsftpd服务
vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。
20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令
TFTP服务
TFTP(简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
TFTP服务默认由xinetd服务进行管理,使用UDP69端口。TFTP服务一般只在装机这种场景下使用,用于传输内核和引导文件。因为安全性不高。它的位置存在:/var/lib/tftpboot
syslinux
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。
搭建PXE远程安装服务器
PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能够向客户机裸机发送 PXE引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。
安装相关软件服务并打开和修改配置文件
安装TFTP服务
- 安装TFTP
yum -y install tftp-server xinetd
- 修改TFTP服务的配置文件
vim /etc/xinetd.d/tftp
protocol = udp #TFTP使用UDP协议
wait = no #no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接
server_args = -s /var/lib/tftpboot #指定TFTP根目录(文件存储路径)
disable = no #no表示开启TFTP服务
- 启动TFTP服务
systemctl start tftp
systemctl enable tftp
systemctl start xinetd
systemctl enable xinetd
安装DHCP服务
-
安装并启用 DHCP 服务
-
修改DHCP服务的配置文件
vim /etc/dhcp/dhcpd.conf
ddns-update-style none; #禁用 DNS 动态更新
next-server 192.168.80.10; #指定 TFTP 服务器的地址
filename "pxelinux.0"; #指定 PXE 引导程序的文件名
subnet 192.168.80.0 netmask 255.255.255.0 { #声明要分配的网段地址
range 192.168.80.100 192.168.80.200; #设置地址池
option routers 192.168.80.10; #默认网关地址指向TFTP服务器的IP地址
}
- 开启dhcpd服务
准备 Linux 内核、初始化镜像文件
cd /mnt/images/pxeboot #已事先把光盘挂载到/mnt目录中
cp vmlinuz /var/lib/tftpboot/ #复制 Linux系统的内核文件 到TFTP根目录下
cp initrd.img /var/lib/tftpboot/ #复制 初始化镜像文件(linux引导加载模块)到TFTP根目录下
准备PXE引导程序
yum -y install syslinux #PXE引导程序由软件包 syslinux 提供
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #复制 PXE引导程序 到TFTP根目录下
安装FTP服务,准备CentOS 7 安装源
- 安装FTP服务
yum -y install vsftpd
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7/
systemctl start vsftpd
systemctl enable vsftpd
- 打开FTP服务
配置启动菜单文件
默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default
mkdir /var/lib/tftpboot/pxelinux.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
default auto #指定默认入口名称
prompt 1 #设置是否等待用户选择,“1”表示等待用户控制
label auto #图形安装(默认)引导入口,label 用来定义启动项
kernel vmlinuz #kernel 和 append用来定义引导参数
append initrd=initrd.img method=ftp://192.168.80.10/centos7
label linux text #文本安装引导入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.80.10/centos7
label linux rescue #救援模式引导入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.80.10/centos7
关闭防火墙,验证 PXE 网络安装![在这里插入图片描述](https://img-blog.csdnimg.cn/33d868d68fb94f5ebc8e1a542a1d9ed2.png)
实现Kickstart无人值守安装
上面的安装,是通过PXE技术远程安装系统的方法,安装介质不再受限于光盘,移动硬盘等设备,大大提高了系统安装的灵活性。然而安装期间仍需要手动选择语言、键盘类型、指定安装源等一系列交换操作,当需要大批量安装时仍然很麻烦。所以要想实现真正的全自动化,就要引入Kickstart程序服务,实现真正完全全自动化安装。
打开“Kickstart 配置程序”窗口
配置kickstart选项
- 基本配置
- 安装方法
3. 引导装载程序选项
4. 分区信息
5.网络配置
6. 防火墙配置
7.安装后脚本
- 保存自动应答文件
- 配置需要安装的软件包
将 /root/anaconda-ks.cfg 的软件包安装脚本中 %packages 到%end 部分复制到 ks.cfg 文件中。
vim ks.cfg
- 编辑引导菜单文件 default,添加 ks 引导参数
vim /var/lib/tftpboot/pxelinux.cfg/default
- 进行测试,只需要打开虚拟机,不用做任何操作