IT@程序员猿媛

CentOs7 PXE自动批量部署

2020-08-09  本文已影响0人  高多金

CentOs7 PXE自动批量部署

目录

主服务器信息

环境

  1. VM虚拟机,仅主机模式取消勾选DHCP
image-20200809112512252.png
  1. 在win10机器上的网络配置中,配置IP
image-20200809122257338.png
  1. 配置成和虚拟机仅主机模式的IP网段一致
image-20200809122340480.png

PXE工作原理

  1. CentOs7主服务器部署DHCP服务器,使用DHCP服务器 分发网络信息,客户机网卡连接到网络,通过DHCP服务器发送tftp服务器IP和PXE程序到客户机
  2. 客户机连接到网络后读取tftp网络地址,在tftp的根目录下找到pxe启动程序,在内存中执行
  3. 执行pxe程序后,到指定位置读取镜像,配置文件等,执行自动装机,通过http传输大文件

部署主服务器

  1. 配置网卡IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
#需要配置的地方有
BOOTPROTO=static    #把dhcp 改为 static 静态IP
ONBOOT=yes          #把no 改为 yes 启动网卡
#在最后添加
IPADDR=192.168.121.20
GATEWAY=192.168.121.1
NETMASK=255.255.255.0
DNS1=192.168.121.1
#重启网卡
systemctl restart network
image-20200809130434383.png
  1. 配置本地yum源
image-20200809124022730.png
mkdir -p /media/cdrom/
mount /dev/sr0 /media/cdrom/

CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
image-20200809130257934.png
cd /etc/yum.repos.d/
#建议把之前所有的源删除

vi dvd.repo
#文件内容

[development]
name=centos7
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0   

#清除缓存
yum clean all
image-20200809130228598.png
  1. 配置服务器
yum -y install dhcp tftp-server xinetd
vi /etc/dhcp/dhcpd.conf
#文件内容如下

#开启给无操作系统设备分配ip
allow booting;
allow bootp;
#dns配置
ddns-update-style interim;
ignore client-updates;
#分配IP的地址段和子网掩码
subnet 192.168.121.0  netmask 255.255.255.0{
#IP地址的子网掩码
option subnet-mask 255.255.255.0;
#定义dns服务器地址 配置成主服务器地址(dhcp)
option domain-name-servers 192.168.121.20;
#dhcp地址池范围 100个可分配的IP地址
range dynamic-bootp 192.168.121.100 192.168.121.200;
#租约默认使用时间21600秒 6小时
default-lease-time 21600;
#最大租约时间 
max-lease-time 43200;
#主服务器地址 当客户端服务器获取到IP地址后 主动到主服务器上获取引导文件
next-server 192.168.121.20;     #tftp服务器地址
filename "pxelinux.0";         #根目录下的pxe程序
}
image-20200809130121008.png
systemctl start dhcpd
#设置开机自启
systemctl enable dhcpd

Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
image-20200809130203168.png
systemctl stop firewalld
setenforce 0
#tftp的配置文件在:/etc/xinetd.d/tftp
vim /etc/xinetd.d/tftp
#修改一处
把disable = yes 改为 no  
image-20200809130729808.png
systemctl start xinetd
systemctl enable xinetd
chkconfig --list
image-20200809131511625.png
yum provides "*/pxelinux.0"  #使用此命令查找什么包中存在此文件
image-20200809132128113.png
yum -y install syslinux

#安装成功后查找pxe执行程序所在目录
rpm -ql syslinux |grep pxe
#复制文件到tftp根目录
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
image-20200809132401232.png
#在tftp根目录下创建文件夹
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
cp /media/cdrom/isolinux/* /var/lib/tftpboot/
image-20200809133858246.png
yum -y install httpd
#启动并设置开机自启
systemctl start httpd
systemctl enable httpd
image-20200809135358004.png
cd /var/www/html/
mkdir pxe
mkdir ks     #后续说明此目录
#并把iso镜像挂载到此目录下
umount /media/cdrom/
mount /dev/cdrom /var/www/html/pxe/
image-20200809135652044.png
vim /etc/fstab
#末尾加入行
/dev/cdrom                  /var/www/html/pxe  iso9660 defaults,loop 0 0
image-20200809140117925.png
cp /root/anaconda-ks.cfg /var/www/html/ks/ks.cfg  #之前创建的ks目录
#把ks.cfg文件授权给apache
chown apache:apache ks.cfg
image-20200809141207172.png
vim /var/www/html/ks/ks.cfg
#把备注  Use CDROM installation media下的cdrom 修改为http地址
url  --url=http://192.168.121.20/pxe
image-20200809141656506.png image-20200809144510615.png
yum -y install system-config-kickstart
#使用 system-config-kickstart 命令打开工具
system-config-kickstart
image-20200809145728794.png image-20200809145916997.png image-20200809150523180.png image-20200809150648428.png image-20200809150746251.png image-20200809150817106.png image-20200809150849697.png image-20200809150919115.png image-20200809151048688.png image-20200809151209128.png image-20200809151556652.png image-20200809151626483.png image-20200809151735188.png image-20200809151805397.png
cp ks.cfg /var/www/html/ks/ks.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
image-20200809142644844.png image-20200809143145271.png image-20200809142804541.png

最重要的两块

  1. label linux 是装系统的第一个选项 安装系统,menu 是菜单名称,kernel是内核版本,append 是镜像版本和启动镜像的位置
  2. label check 是 装系统的第二个选项 检查系统并安装 其中的menu default 是默认选项的意思
image-20200809143112768.png

修改前

image-20200809141854973.png

修改后

image-20200809142237374.png

修改后保存退出

然后可以创建一个仅主机的vm测试

上一篇下一篇

猜你喜欢

热点阅读