在centos 7.6部署pxe(网络自动化引导),进行系统批量部署

简介(个人理解)

PXE的全称是preboot execute environment,是通过网络引导至安装操作系统所需的镜像、IP地址等资源进行系统的自动化部署的技术。 以下是具体部署操作:

1、环境准备

准备一台centos 7 操作系统虚拟机

更改网络模式为NAT模式,并且取消DHCP自动获取IP功能

打开虚拟机设置,继续检查网络设置,将网络设置为如下内容:

 

2、服务器配置

1、初始环境

进入主机关闭防火墙以及selinux

systemctl stop firewlld
systemctl disable firewalld 
systemctl status firewalld

[root@localhost ~]# systemctl stop firewlld               #关闭防火墙

[root@localhost ~]# systemctl disable firewalld        #开机自关闭

[root@localhost ~]# systemctl status firewalld         #检查防火墙状态

 

 

2、yum安装服务

yum -y install tftp tfpt-server httpd syslinux

3、配置DHCP

进入配置文件

vi /etc/dhcp/dhcpd.conf

进入以后在末尾添加以下内容

subnet 192.168.128.0 netmask 255.255.255.0 {
 	option routers 192.168.171.1; 
option domain-name-servers 192.168.171.1; 
 	range 192.168.171.20 192.168.171.200;
 	next-server 192.168.171.10;
 	filename "pxelinux.0";

具体含义如下图:

启动DHCP服务

[root@localhost ~]# systemctl start httpd         #启动服务

[root@localhost ~]# systemctl status httpd         #检查状态,结果如下:

4、搭建http服务

[root@localhost ~]# mkdir /var/www/html/Centos #创建文件夹

[root@localhost ~]#mount /dev/sr0 /var/www/html/Centos   #挂载(临时挂载)

如果需要进行永久挂载,则进入配置文件添加,操作如下:

        [root@localhost ~]#vim /etc/fstab #进入挂载配置文件

 文本末尾加入: /dev/sr0  /var/www/html/Centos    iso9660 defaults    0 0

如图:

       

加入后保存退出

5、配置tftp服务

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

cp /var/www/html/Centos/isolinux/{vmlinuz,*.c32,initrd.img}  /var/lib/tftpboot/

mkdir /var/lib/tftpboot/pxelinux.cfg

vim /var/lib/tftpboot/pxelinux.cfg/default

#cp 的作用是为了保证不影响原文件的内容(不建议新手在原文件的基础上做改动)

进入文件后,输入以下内容:

default  linux
prompt 0 
timeout 10
label linux
kernel vmlinuz
Append  initrd=initrd.img  ip=dhcp  method=http://192.168.171.10/Centos ks=http://192.168.171.10/ks.cfg

 如图:

启动并检查服务状态

[root@localhost ~]# systemctl start tftp    

[root@localhost ~]# systemctl status tftp        #查看方法同上

6、生成ks.cfg文件

cp /root/anaconda-ks.cfg  /var/www/html/ks.cfg

vim /var/www/html/ks.cfg

文件里面写入以下内容:(特别注意网卡与IP与自己相符,我的IP是192.168.171.10,注意改为自己的IP地址)

ignoredisk --only-use=sda
autopart --type=lvm
clearpart --all	
graphical
url     --url="http://192.168.171.10/Centos/"	
rootpw --plaintext P@ssw0rd01!		
keyboard --vckeymap=cn --xlayouts='cn'
lang zh_CN.UTF-8
selinux --disabled
network  --bootproto=dhcp --device=ens33 --ipv6=auto --activate
network  --hostname=localhost.localdomain
xconfig  --startxonboot
firstboot --disable
services --enabled="chronyd"
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all
# Disk partitioning information
reboot
eula --agreed
%packages
@^graphical-server-environment
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict
--nochanges --notempty
%end

 

7、修改文件权限,启动http服务

chmod a+r /var/www/html/ks.cfg   #修改权限

启动并查看服务状态

[root@localhost ~]# systemctl start httpd

[root@localhost ~]# systemctl status httpd

三、客户端验证

创建一个新的虚拟机,在不做镜像文件挂载的情况下开机,让其在所搭建的服务下进行镜像索引以及IP地址的获取,如果虚拟机可以自动跳转至安装步骤,则恭喜你,PXE部署已经成功,可以进行系统的批量部署了。

四、bug小结

(一)部署PXE过程中找不到服务的情况:

1、检查httpd、dhcpd、tftp服务是否为开启状态

启动命令:systemctl start {服务名称}

检查命令:systemctl status {服务名称},若出现active(running)则服务已经开启

2、DHCP服务器地址出错

由于DHCP服务也是装在本机上的,因此,在这,服务器地址就是本机地址

(二)、如以下的报错情况适用这类检查: 

检查/dev/sr0 的挂载目录

因为前面利用yum下载的原因,有可能/dev/sr0可能已经挂载至其他目录,此时你应该先卸载然后再执行挂载命令

查看命令:df -h

卸载挂载命令:umount /dev/sr0 /{被挂载目录} #这里我挂载的是我的本地yum源

重新挂载:mount /dev/sr0 /var/www/html/Centos

至此,此次pxe(系统安装引导)部署完成。有做得不对的地方还请大神给予指正。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值