大规模的linux应用环境中,如Web群集、分布式计算机等,服务器往往并不配备光驱设备,在这种情况下,PXE可以为数十乃至上百台服务器逻辑快速安装系统。
预启动执行环境,在操作系统之前运行
运行DHCP服务,用来分配地址,定位引导程序
运行TFTP服务,提供引导程序下载
网卡支持PXE协议
主板支持网络启动
准备centos 7 安装源(yum仓库)
安装并启动TFTP服务
提供linux内核,PXE引导程序等
安装并启动DHCP服务,用来分配地址,指导引导程序位置
配置启动菜单
centos 7 安装源支持HTTP、FTP、NFS等协议发布
安装tftp-server软件包,启用tftp服务
配置文件位于/etc/xinetd.d/tftp
linux内核、初始化镜像文件分别为vmlinuz和initrd.img
引导程序为pxelinux.0,由软件syslinux提供
[root@localhost ~]#yum install dhcp -y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.20 192.168.100.30;
option routers 192.168.100.100;
option domain-name-servers 6.6.6.6;
next-server 192.168.100.100; '指定TFTP服务器地址'
filename "pxelinux.0"; 'filename:指定要下载的引导程序文件'
}
[root@localhost ~]#systemctl start dhcpd
[root@localhost ~]#systemctl enable dhcpd
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://20.0.0.47/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://20.0.0.47/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://20.0.0.47/centos7
文件名称 | 解释 | 作用 |
---|---|---|
default | 需要先pxelinux.cfg目录 | 引导配置文件默认被加载 |
vmlinuz | 压缩内核 | 在default中被定义最先加载 |
initrd.img | 初始化镜像文件 | 在default被定义第二个加载的 |
pxelinux.0 | 引导程序 | 需要安装syslinux包才会有,在dhcp配置文件中定义 |
DHCP | 让客户端获取IP地址,能主动联网PXE服务器 | 配置中指向TFTP |
---|---|---|
TFTP | 简单文件系统,UDP,69端口,快速加载引导程序,引导程序的容量较小 | 默认配置文件指向FTP镜像位置 |
FTP | 文件系统,TCP,21端口连接服务,20端口传输数据 | 系统镜像存放 |
调整BIOS设置,以便从网络引导
自动获取IP地址,并指定centos7安装源
其余过程与本地安装相同
未安装系统的裸机通过PXE实现自动安装系统
VMware软件中centos 7系统以及一台未安装系统的裸机
第一步,在服务器设置双网卡
在centos 7添加一个网络适配器,并设置为仅主机模式。 用来装机,做服务器的网卡
原本的网络适配器保持NAT模式不变。 用来安装yum包
第二步:修改网卡配置信息
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
[root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# vim ifcfg-ens36
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ifconfig
第三步:安装DHCP并设置
[root@localhost ~]# yum install dhcp -y
[root@localhost ~]# cat /etc/dhcp/dhcpd.conf
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
第四步:安装并设置syslinux
安装软件包syslinux,因为PXE的引导程序pxelinux.0是由软件包syslinux提供。
[root@localhost ~]# yum install syslinux -y
[root@localhost ~]# rpm -ql syslinux |grep pxelinux.0 过滤查找pxelinux.0在哪
[root@localhost ~]# yum install tftp-server -y
[root@localhost ~]# rpm -ql tftp-server
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost ~]# ls /var/lib/tftpboot/
TFTP服务有tftp-server软件包提供,默认由xinetd超级服务管理,因此配置文件位/etc/xinetd,d/tftp。配置时只要将"yes"改成"no",然后启动xinetd服务即可。
[root@localhost ~]# vim /etc/xinetd.d/tftp
[root@localhost ~]# yum install vsftpd -y
[root@localhost ~]# rpm -ql vsftpd
[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# ls
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# ls
[root@localhost ftp]# mount /dev/sr0 /var/ftp/centos7/
第六步,在镜像中复制出文件
[root@localhost ftp]# cd centos7/
[root@localhost centos7]# ls
[root@localhost centos7]# cd images/
[root@localhost images]# ls
[root@localhost images]# cd pxeboot/
[root@localhost pxeboot]# ls
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/
[root@localhost pxeboot]# ls /var/lib/tftpboot/
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# ls
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default
[root@localhost pxelinux.cfg]# systemctl stop firewalld.service
[root@localhost pxelinux.cfg]# setenforce 0
[root@localhost pxelinux.cfg]# systemctl start dhcpd
[root@localhost pxelinux.cfg]# systemctl start tftp
[root@localhost pxelinux.cfg]# systemctl start vsftpd
创建应答文件,预先定义好各种安装设置
免去交互设置过程,从而实现全自动化安装
通过添加%post脚本,完成安装后的各种配置操作
[root@localhost ~]# yum install system-config-kickstart -y 安装kickstart工具
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# ls
[root@localhost ftp]# cd /root
[root@localhost ~]# ls
[root@localhost ~]# vim anaconda-ks.cfg
[root@localhost ~]# vim /var/ftp/ks.cfg
[root@localhost ~]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# ls
[root@localhost pxelinux.cfg]# vim default
将客户机以PXE方式引导
系统会自动完成安装,并配置好软件仓库
整个安装过程无需手动干预