CentOs7 PXE自动批量部署

CentOs7 PXE自动批量部署

目录

  • 主服务器信息
  • 环境
  • PXE工作原理
  • 部署主服务器
    配置网卡IP
    配置本地yum源
    安装配置DHCP
    安装配置TFTP
    获取PXE程序
    安装配置HTTP
    配置ks.cfg文件(安装信息文件)建议使用kickstart安装
    配置PEX程序默认配置文件,指定路径
    配置完成

主服务器信息

  • 系统:CentOs7
  • 配置:4C 4G 50GB
  • 部署软件:DHCP tftp http
  • 网络:VM虚拟机 仅主机网络

环境

  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
  • 配置yum
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
  • 配置dhcp服务器
  • dhcp服务器的配置文件是:/etc/dhcp/dhcpd.conf
  • 模板文件在:/usr/share/doc/dhcp*/dhcpd.conf.example
  • 开始配置
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
  • 启动dhcp 并设置开机自启
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
  • 测试临时关闭防火墙和selinux
systemctl stop firewalld
setenforce 0
  • 配置tftp
#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
  • 表示开启
  • tftp的根目录是 /var/lib/tftpboot/ 客户机会读取此根目录
  • 接下来 需要把pxe执行程序 “pxelinux.0” 放入tftp的根目录 用于让客户机拉去
yum provides "*/pxelinux.0"  #使用此命令查找什么包中存在此文件
image-20200809132128113.png
  • 安装syslinux
yum -y install syslinux

#安装成功后查找pxe执行程序所在目录
rpm -ql syslinux |grep pxe
#复制文件到tftp根目录
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
image-20200809132401232.png
  • 获取到pxe执行程序(引导文件)后 并复制到了tftp根目录下,接下来需要把pxe程序工作所需要的配置文件,镜像等,放置合适位置
#在tftp根目录下创建文件夹
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
  • 在挂在目录/media/cdrom下中的iso镜像文件里,有一个 “isolinux” 目录十分重要
  • 其中的isolinux.cfg文件是 pxe执行程序的默认配置文件,用来配置开机菜单以及菜单对应的功能,所以我们把他复制到tftp根目录中pxelinux.cfg目录下
cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
  • 之后把“isolinux” 目录下的内容 全部复制到 tftp根目录下
cp /media/cdrom/isolinux/* /var/lib/tftpboot/
image-20200809133858246.png
  • 此目录下 最重要的两个文件 是:”vmlinuz“ ,”initrd.img“ 这两个文件一定要匹配操作系统,他们决定了自动安装的系统版本,其中vmlinuz是内核文件 initrd.img是对应的驱动文件,如果想安装不同的系统版本就找对应的光盘里找对应文件
  • 安装http用于传输大文件
yum -y install httpd
#启动并设置开机自启
systemctl start httpd
systemctl enable httpd
image-20200809135358004.png
  • 到httpd的根目录下创建目录
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
  • 接下来 配置系统信息,linux中有一个工具是:”system-config-kickstart“ 用于配置启动启动时的配置选项并可以导出配置文件,一般在root目录下有一个 anaconda-ks.cfg 文件 就是装系统是的配置选项,如时区,密码,磁盘分区等信息,可以直接使用此文件来自动安装一样的系统配置
  • 第一种方法直接复制root目录下的文件 这样就是把现在使用的系统配置复制了一份 后续的客户机都是找个配置的系统
  • 我们把root下的配置文件复制到http下
cp /root/anaconda-ks.cfg /var/www/html/ks/ks.cfg  #之前创建的ks目录
#把ks.cfg文件授权给apache
chown apache:apache ks.cfg
image-20200809141207172.png
  • 在ks.cfg中指定http目录 用于安装系统的iso文件
vim /var/www/html/ks/ks.cfg
#把备注  Use CDROM installation media下的cdrom 修改为http地址
url  --url=http://192.168.121.20/pxe
image-20200809141656506.png
  • 之后把文件放到http根目录的ks目录下
  • 第二种方法使用kickstart
  • 把yum配置成
image-20200809144510615.png
  • 安装kickstart
yum -y install system-config-kickstart
#使用 system-config-kickstart 命令打开工具
system-config-kickstart
  • 设置默认语言中文或者英文,键盘,时区,设置root密码,勾选安装后重启
image-20200809145728794.png
  • 安装方法选择http 输入http服务器和目录
image-20200809145916997.png
  • 引导程序
image-20200809150523180.png
  • 配置磁盘分区 裸机配置
image-20200809150648428.png
  • 分区配置
image-20200809150746251.png
image-20200809150817106.png
image-20200809150849697.png
  • 添加网卡配置
image-20200809150919115.png
image-20200809151048688.png
  • 内核依旧识别eth0
image-20200809151209128.png
  • 安装默认软件包
image-20200809151556652.png
image-20200809151626483.png
  • 最后两个脚本 先不管
  • 配置好之后 把文件导出
image-20200809151735188.png
  • 保存到能找到的位置上
image-20200809151805397.png
  • 配置好之后 把ks文件放入http目录下
cp ks.cfg /var/www/html/ks/ks.cfg
  • 然后在pxe程序默认文件中指定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测试

你可能感兴趣的:(CentOs7 PXE自动批量部署)