PXE远程安装服务
PXE是由intel公司开发的网络引导技术,采用C/S架构,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统。
部署PXE网络体系的先决条件:
1.客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。
2.网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置。
3.服务器通过TFTP(|Trivial File Transfer Portocol,简单 文件传输协议)提供引导镜像文件下载。
第一点实际上就是硬件要求,目前绝大数服务器和大多数PC都能够提供此支持,只需要在BIOS设置中允许从Network或LAN启动即可。
1.准备 CentOS 7 安装源。
[root@localhost ~]# mkdir -p /var/ftp/centos7
[root@localhost ~]# cp -rf /media/cdrom/* /var/ftp/centos7/
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd
2.部署TFTP服务
[root@localhost ~]# yum -y install tftp-server
修改配置文件
[root@localhost ~]# cp /etc/xinetd.d/tftp{,.bak}
[root@localhost ~]# vim /etc/xinetd.d/tftp
---省略部分信息---
{
socket_type = dgram
protocol = udp
wait = yes
user = root0
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
[root@localhost ~]# systemctl start tftp.socket
[root@localhost ~]# systemctl enable tftp.socket
3.准备Linux内核、初始化镜像文件
用于PXE网络网络安装的Linux内核、初始化镜像文件可以从CentOS7 系统光盘中获得,分别为vmlinuz和init。img,位于目录images/pxeboot下。将这两个文件复制到tftp服务的根目录下。
[root@localhost ~]# cp /media/cdrom/images/pxeboot/vmlinuz /var/lib/tftpboot/
[root@localhost ~]# cp /media/cdrom/images/pxeboot/initrd.img /var/lib/tftpboot/
4.准备PXE引导程序、启动菜单文件。
用于PXE网络安装的引导程序为pxelinux.0,由软件包syslinux提供。安装好syslinux,而后将文件pxelinux.0也一同复制到tftp服务的根目录下。
[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
启动菜单用来引导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为default,应放置在tftp根目录的pxelinux.cfg字目录下,可以参考以下启动菜单进行配置。
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# cat >/var/lib/tftpboot/pxelinux.cfg/default <
default auto #指定默认入口名称
prompt 1 #1:表示等待用户控制
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.50.11/centos7
label linux text
kernel vmlinuz
append text initrd=init.img method=ftp://192.168.50.11/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=init.img method=ftp://192.168.50.11/centos7
EOF
改配置文件中定义了三个引导入口,分别是图形化安装(默认,对新手比较友好),文本安装、救援模式。
prompt:0 无人值守,全自动。1 用户需要介入,半自动。
label: 定义并分割启动项。
kernel和append:定义引导参数。
引导入口根据自身需求自定义即可。如果使用全自动的话只需要一个入口即可。
5.部署DHCP服务。
由于PXE客户机都是没有安装操作系统的裸机。为了与服务器取得联系并正确下载相关的引导文件,需要预先配置号DHCP服务来自动分配地址并告知引导文件位置。
[root@localhost ~]# yum -y install dhcp
修改配置文件
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
[root@localhost ~]# cat /etc/dhcp/dhcpd.conf
---省略部分信息---
# A slightly different configuration for an internal subnet.
subnet 192.168.50.0 netmask 255.255.255.0 {
range 192.168.50.100 192.168.50.150;
option domain-name-servers 192.168.50.2,8.8.8.8;
option domain-name "rain.com";
option routers 192.168.50.2;
option broadcast-address 192.168.50.255;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.50.11;
filename "pxelinux.0";
}
---省略部分信息---
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd
6.检查各个服务以及所需文件是否齐全。
[root@localhost ~]# ls /var/ftp/centos7/
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
[root@localhost ~]# ls -R /var/lib/tftpboot/
/var/lib/tftpboot/:
init.img pxelinux.0 pxelinux.cfg vmlinuz
/var/lib/tftpboot/pxelinux.cfg:
default
[root@localhost ~]# systemctl status vsftpd tftp dhcpd | grep Active
Active: active (running) since 一 2022-11-21 13:56:29 CST; 1h 6min ago
Active: active (running) since 一 2022-11-21 14:56:02 CST; 6min ago
Active: active (running) since 一 2022-11-21 14:53:29 CST; 9min ago
7.验证。
客户机开机。
·正在获取IP
出现此窗口摁回车或者输入'auto',也就是上述启动菜单中定义的三项,这里直接回车
到这里也就安装成功了,不再展示。
下期展示全自动安装。