----------------------基本概述----------------------
PXE是由Inter公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网路从远程服务器下载引导镜像,并加载安装文件或者整个操作系统
---------安装PXE批量装机所需要的服务---------
DHCP+TFTP+DHTP
---------安装PXE所需要的文件--------------
引导程序pxelinux.0
压缩内核vmlinuz
系统初始化文件initrd.img
启动菜单default
·
DHCP:自动分配IP地址,定位引导文件。
TFTP:存放安装系统的引导文件,加载速度快(理由是因为引导文件小,需要的是高效操作)
FTP:存放系统文件,容量大 (TCP协议,系统文件需要的是安全稳定的传输)
系统环境
CentOS7 作为一台服务端:运行DHCP服务用来分配地址、定位引导程序,运行TFTP服务器,提供引导程序下载
CentOS7作为一台客户端:网卡支持PXE协议,主板支持网络启动
实际操作
1、首先部署PXE服务器,要知道PXE是在局域网的环境下是使用的,但是因为我们需要安装服务所需要的软件包(也可以创建私有YUM仓库),所以需要再添加一块网卡设置为仅主机模式,这样就既可以安装所需的软件包,又可以再局域网内进行引导服务
·
1、首先我们把新添加的网卡进行配置,将ens33的网络配置文件模板复制一份到ens36里,然后输入"vim ifcfg-ens36",进入ens36的网络配置文件里,将ens36配置为静态IP,按"/"输入dhcp,敲击回车,按"dw"删除改为"static",将配置文件中所有的"ens33"改为"ens36",按"dd"删除UUID=c9fb678c-82b2-44b7-93ee-ab6d56e066cb,再配置上网关地址为192.168.100.1,按"wq"保存退出,这样ens36的网络就配置好了,配置完之后重新启动,让其生效
[root@localhost ~]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36 [root@localhost network-scripts]# vim ifcfg-ens36 [root@localhost network-scripts]# service network restart
·
2、使用"ifconfig"命令查看修改后的ens36IP地址、MAC地址是否生效
[root@localhost network-scripts]# ifconfig
·
3、双网卡配置结束之后我们就要开始安装服务了,首先安装DHCP服务,输入"yum intsall dhpd -y"开始安装DHCP服务
[root@localhost network-scripts]# yum install dhcp -y
·
4、接下里就是配置DHCP的过程,输入"cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf"复制一个模板到DHCP配置文件中,输入"yes"确认覆盖
[root@localhost network-scripts]# cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
·
5、模板复制好了之后进入DHCP的配置文件里进行修改
详细步骤[root@localhost network-scripts]# 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 10.10.10.10;
filename "pxelinux.0";
}
subnet 192.168.100.0 netmask 255.255.255.0(设置网段为192.168.100.0、MAC地址不变)
range 192.168.100.20 192.168.100.30;(配置DHCP服务分配给客户端的地址范围)
option routers 192.168.100.100;(网关设置为指向本地)
option domain-name-servers 10.10.10.10;(分配DNS地址)
net-server 192.168.100.100;(指向TFTP服务器)
filename "pxelinux.0";(指向引导文件位置)
·
6、配置完DHCP配置文件之后就可以安装引导程序文件
[root@localhost network-scripts]# yum install syslinux -y
·
7、安装完之后可以输入"[root@localhost network-scripts]# rpm -ql syslinux | grep pxelinux.0",可以看到文件的路径位置,但是我们应该把它放在TFTP里,因为刚才在配置文件中我们指向了TFTP路径"pxelinux.0",
·
8、安装我们所需要的使用的tftp服务,输入[root@localhost network-scripts]# yum install tftp-server -y"
[root@localhost network-scripts]# yum install tftp-server -y
·
9、tftp服务安结束之后我们需要知道它的配置文件和站点,输入"[root@localhost ~]# rpm -ql tftp-server",其中"/etc/xinetd.d/tftp"是tftp服务的配置文件,"/var/lib/tftpboot"是tftp服务的站点
[root@localhost ~]# rpm -ql tftp-server
·
10、现在把引导程序"pxelinux.0"放入到tftp服务站点里
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
·
11、进入配置文件修改enable启动tftp服务,输入"vim /etc/xinetd.d/tftp",将配置文件中"enable"一行中的"yes"改为"no"即可
[root@localhost ~]# vim /etc/xinetd.d/tftp
·
12、安装ftp服务使用里面的镜像文件,输入"yum install vsftpd -y"
[root@localhost ~]# yum install vsftpd -y
·
13、进入到ftp站点中拆创建文件夹"centos7"作为挂载目录,可以选择复制到"centos7"也可以直接挂载,这里需要把虚拟机中的镜像文件连接上才可以进行挂载
[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# mount /dev/sr0 /var/ftp/centos7
·
14、将初始化文件和压缩内核文件放到"/var/libtftpboot/(tftp服务站站点),
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/
·
15、通过查看可以看到tftp服务站点中就差启动菜单配置好,接下来就是配置启动菜单,进入到"tftpboot"中创建"pxelinux.cfg"目录(此目录名千万不能错)
[root@localhost tftpboot]# mkdir pxelinux.cfg
·
16、进入到pxelinux.cfg中,手动编辑启动菜单"default",编辑完之后"wq"保存退出
详细配置
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
·
17、所有的文件都配置好了之后就剩下最后一步了,关闭防火墙、增强性安全功能,然后启动所有服务
[root@localhost pxelinux.cfg]# systemctl stop firewalld.service(关闭防火墙) [root@localhost pxelinux.cfg]# setenforce 0(关闭增强性安全功能) [root@localhost pxelinux.cfg]# systemctl start dhcpd(启动dhcp服务) [root@localhost pxelinux.cfg]# systemctl start tftp(启动tftp服务) [root@localhost pxelinux.cfg]# systemctl start vsftpd(启动ftp服务)
-------------------无人装机服务--------------
1、要想实现装机过程无需手动,我们这里就需要安装"kickstart"
[root@localhost ~]# yum install system-config-kickstart -y
·
·
3、点击进入就开始配置"Kiskstart"程序
基本配置
默认语言:中文(简体)
键盘:U.S.English
时区:Asia/Shanghai
Root密码:
勾选安装后重启
安装方法
安装方法:执行全新安装
安装方法:FTP
分区信息
点击添加
/boot:500M
/home:4096M
swap:4096M
/:使用磁盘上全部未分配空间
网络设置
点击添加网络设备
防火墙设置
安装后脚本
基本配置已经满足,点击左上角的文件保存,将文件保存在文件系统"/var/ftp/
·
4、"Kiskstart"配置完,我们需要把"root"目录中"anaconda-ks.cfg"里的主机安装包作为模板复制到"ks.cfg"中,如果不复制的话安装的时候选组件就会失败
[root@localhost ftp]# vim anaconda-ks.cfg [root@localhost ftp]# vim ks.cfg
5、先进入到"/var/lib/tftpboot/中,再进入到"/pxelinux.cfg"中可以看到"default",编辑"default"在自动模式里添加kickstart配置文件的路径
[root@localhost ~]# cd /var/lib/tftpboot/ [root@localhost tftpboot]# cd pxelinux.cfg/ [root@localhost pxelinux.cfg]# vim default
6、最后我们新建一台虚拟机,在安装时选择稍后稍后安装操作系统,然后选择仅主机模式,点击运行虚拟机就可以看到自动安装CentOS7了