centos7 PXE批量网络装机(自动化)
目录PXE简介前提条件原理解释PXE工作图解centos7 批量网络装机配置所需准备配置yum源,安装ftp服务器准备centos7安装源并启动ftp服务准备linux内核、初始化镜像文件准备pxe引导程序准备自动安装的应答文件配置无人值守启动菜单安装并启用DHCP服务器客户端验证(记得放到同一个网段)相关问题的检查PXE简介PXE,就是预启动执行环境,是一种引导启动的方式。这种协议一般由两部..
目录
PXE简介
PXE就是预启动执行环境,是一种引导启动的方式。这种协议一般由两部分构成,一部分是服务器端,一个是客户端。简单来说,我们通过这种方式可以自己创建一个“安装源”,在安装系统的时候只要能找到这个“源”便可以实现系统的安装。在实现无人值守的安装前,我们必须要搭建一些服务,来实现“安装源”的建立,例如ftp、http、tftp、dhcp等。
前提条件
1)客户机的网卡支持PXE协议,且主板支持网络引导,目前绝大多数服务器和PC都支持此项。
2)网络中有一台DHCP服务器,以便为客户机自动分配ip,指定引导文件位置
3)服务器通过TFTP(简单文件传输协议)提供引导镜像文件的下载。
原理解释
PXE客户端通过网卡向局域网内发送ip请求,然后DHCP服务器会提供给给它一个ip地址和系统安装所需要的文件,接下使用接收到的文件进行系统安装。而安装的过程又需要其他服务器提供的资源,例如:yum源,内核文件等,当主机拿到这些资源,便可以顺利的安装了。最终结果是:任意一台主机在选着网络启动时会获取DHCP服务器分发的ip,通过通过获取到的ip地址与局域网内的TFTP服务器通信并获取启动文件,与FTP或者HTTP通信并获取yum源文件及内核文件等。之后开始自动安装,而这个过程不需要人在做任何操作。
PXE工作图解
简单的网络拓扑
工作示意图
centos7 批量网络装机配置
所需准备
服务器端要求:
安装源(系统盘文件);
TFTP服务;
DHCP服务;
Linux内核;
能够向客户机裸机发送PXE引导程序;
启动菜单及无人应答文件等。
客户端要求:
客户端的网卡支持PXE协议,且主板支持网络引导(现在多数都支持);
设置BIOS允许从Network或LAN启动;
配置yum源,安装ftp服务器
这里挂载光盘配置yum源省略,直接安装ftp
yum install -y install vsftpd*
修改vsftp配置文件允许root和匿名用户登录
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
将黑白名单中的root用户删除,允许root登录ftp
vim /etc/vsftpd/user_list
vim /etc/vsftpd/ftpusers
开启vsftp服务
[root@localhost yum.repos.d]# systemctl start vsftpd #启动ftp服务
[root@localhost yum.repos.d]# systemctl enable vsftpd #设置为开机自启
这里可以测试一下是否匿名能访问
准备centos7安装源并启动ftp服务
将镜像cp到ftp路径
[root@localhost yum.repos.d]# mkdir /var/ftp/centos7
[root@localhost yum.repos.d]# cp -rf /mnt/cdrom/* /var/ftp/centos7/
安装tftp服务
[root@localhost yum.repos.d]# yum -y install tftp-server
编辑TFTP配置文件
[root@localhost yum.repos.d]# vim /etc/xinetd.d/tftp
将disable 改为no
启动TFTP服务
[root@localhost yum.repos.d]# systemctl start tftp #启动TFTP服务
[root@localhost yum.repos.d]# systemctl enable tftp
准备linux内核、初始化镜像文件
[root@localhost ~]# cd /mnt/cdrom/images/pxeboot/
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/
准备pxe引导程序
[root@localhost ~]# cp /usr/share/syslinux/pxe
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var//lib/tftpboot/
准备自动安装的应答文件
利用kickstart工具配置自动应答文件
[root@localhost ~]# yum -y install system-config-kickstart
打开kickstart软件进行基本配置
安装方法
引导选择
分区
网络配置
防火墙配置
安装后脚本设置
cd /etc/yum.repos.d
mkdir bak
mv *.repos bak #移走原始源文件
echo -e "[base]" > aa.repo
echo -e "baseurl=ftp://172.16.15.53/centos7">>aa.repo #写入本地源文件
echo -e "gpgcheck=0">>aa.repo
完成后保存到/var/ftp目录
在ks.cfg文件末尾添加如下语句(即最小化安装)
[root@localhost ~]# vim /var/ftp/ks.cfg
%packages
@^minimal
%end
配置无人值守启动菜单
[root@localhost ~]# mkdir /var/lib/tftpboot//pxelinux.cfg/
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
写入如下配置
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://172.16.15.53/centos7 ks=ftp://172.16.15.53/ks.cfg
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://172.16.15.53/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://172.16.15.53/centos7
安装并启用DHCP服务器
[root@localhost ~]# yum -y install dhcp
编辑网卡配置
[root@localhost ~]$ vim /etc/sysconfig/network-scripts/ifcfg-ens33
编辑dhcp配置文件
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
subnet 172.16.15.0 netmask 255.255.255.0 {
range 172.16.15.1 172.16.15.200;
option domain-name-servers 8.8.8.8;
option domain-name "internal.example.org";
option routers 172.16.15.53;
option broadcast-address 172.16.15.255;
default-lease-time 21600;
max-lease-time 43200;
next-server 172.16.15.53; #指定tftp服务器的地址
filename "pxelinux.0"; #指定pxe引导程序的文件名
}
好了,到现在为止服务器的搭建已经完成了,接下来需要把所有涉及到的服务全部重启一遍,然后关闭安全机制(selinux)和防火墙
客户端验证(记得放到同一个网段)
启动客户端,将会自动寻找dhcp服务器
出现boot回车继续
接下来就是漫长的等待自动安装的过程
安装成功
相关问题的检查
请关注客户端自动安装失败的报错。一般问题出在几个点:
dhcp是否搭建好并能正确获取到ip地址
服务器镜像文件是否cp到ftp路径下
ftp是否能够root和匿名访问
ftp下文件是否有访问权限
几个服务的配置文件是否正确(包括ip地址,路径等)
安全机制和防火墙是否关闭
各项服务是否已经重启
注:本教程适合有一定基础的朋友看,因为我比较懒,有些细节并没有写的很清楚。有问题可以call我呦
更多推荐
所有评论(0)