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测试

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342