CentOs7 PXE自動(dòng)批量部署

CentOs7 PXE自動(dòng)批量部署

目錄

  • 主服務(wù)器信息
  • 環(huán)境
  • PXE工作原理
  • 部署主服務(wù)器
    配置網(wǎng)卡IP
    配置本地yum源
    安裝配置DHCP
    安裝配置TFTP
    獲取PXE程序
    安裝配置HTTP
    配置ks.cfg文件(安裝信息文件)建議使用kickstart安裝
    配置PEX程序默認(rèn)配置文件,指定路徑
    配置完成

主服務(wù)器信息

  • 系統(tǒng):CentOs7
  • 配置:4C 4G 50GB
  • 部署軟件:DHCP tftp http
  • 網(wǎng)絡(luò):VM虛擬機(jī) 僅主機(jī)網(wǎng)絡(luò)

環(huán)境

  1. VM虛擬機(jī),僅主機(jī)模式取消勾選DHCP
image-20200809112512252.png
  1. 在win10機(jī)器上的網(wǎng)絡(luò)配置中,配置IP
image-20200809122257338.png
  1. 配置成和虛擬機(jī)僅主機(jī)模式的IP網(wǎng)段一致
image-20200809122340480.png

PXE工作原理

  1. CentOs7主服務(wù)器部署DHCP服務(wù)器,使用DHCP服務(wù)器 分發(fā)網(wǎng)絡(luò)信息,客戶機(jī)網(wǎng)卡連接到網(wǎng)絡(luò),通過(guò)DHCP服務(wù)器發(fā)送tftp服務(wù)器IP和PXE程序到客戶機(jī)
  2. 客戶機(jī)連接到網(wǎng)絡(luò)后讀取tftp網(wǎng)絡(luò)地址,在tftp的根目錄下找到pxe啟動(dòng)程序,在內(nèi)存中執(zhí)行
  3. 執(zhí)行pxe程序后,到指定位置讀取鏡像,配置文件等,執(zhí)行自動(dòng)裝機(jī),通過(guò)http傳輸大文件

部署主服務(wù)器

  1. 配置網(wǎng)卡IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
#需要配置的地方有
BOOTPROTO=static    #把dhcp 改為 static 靜態(tài)IP
ONBOOT=yes          #把no 改為 yes 啟動(dòng)網(wǎng)卡
#在最后添加
IPADDR=192.168.121.20
GATEWAY=192.168.121.1
NETMASK=255.255.255.0
DNS1=192.168.121.1
#重啟網(wǎng)卡
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
#文件內(nèi)容

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

#清除緩存
yum clean all
image-20200809130228598.png
  1. 配置服務(wù)器
yum -y install dhcp tftp-server xinetd
  • 配置dhcp服務(wù)器
  • dhcp服務(wù)器的配置文件是:/etc/dhcp/dhcpd.conf
  • 模板文件在:/usr/share/doc/dhcp*/dhcpd.conf.example
  • 開始配置
vi /etc/dhcp/dhcpd.conf
#文件內(nèi)容如下

#開啟給無(wú)操作系統(tǒng)設(shè)備分配ip
allow booting;
allow bootp;
#dns配置
ddns-update-style interim;
ignore client-updates;
#分配IP的地址段和子網(wǎng)掩碼
subnet 192.168.121.0  netmask 255.255.255.0{
#IP地址的子網(wǎng)掩碼
option subnet-mask 255.255.255.0;
#定義dns服務(wù)器地址 配置成主服務(wù)器地址(dhcp)
option domain-name-servers 192.168.121.20;
#dhcp地址池范圍 100個(gè)可分配的IP地址
range dynamic-bootp 192.168.121.100 192.168.121.200;
#租約默認(rèn)使用時(shí)間21600秒 6小時(shí)
default-lease-time 21600;
#最大租約時(shí)間 
max-lease-time 43200;
#主服務(wù)器地址 當(dāng)客戶端服務(wù)器獲取到IP地址后 主動(dòng)到主服務(wù)器上獲取引導(dǎo)文件
next-server 192.168.121.20;     #tftp服務(wù)器地址
filename "pxelinux.0";         #根目錄下的pxe程序
}
image-20200809130121008.png
  • 啟動(dòng)dhcp 并設(shè)置開機(jī)自啟
systemctl start dhcpd
#設(shè)置開機(jī)自啟
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
  • 測(cè)試臨時(shí)關(guān)閉防火墻和selinux
systemctl stop firewalld
setenforce 0
  • 配置tftp
#tftp的配置文件在:/etc/xinetd.d/tftp
vim /etc/xinetd.d/tftp
#修改一處
把disable = yes 改為 no  
image-20200809130729808.png
  • 保存退出
  • 啟動(dòng)服務(wù)器并設(shè)置開啟自啟
systemctl start xinetd
systemctl enable xinetd
  • 可以通過(guò)命令查看是否啟動(dòng)
chkconfig --list
image-20200809131511625.png
  • 表示開啟
  • tftp的根目錄是 /var/lib/tftpboot/ 客戶機(jī)會(huì)讀取此根目錄
  • 接下來(lái) 需要把pxe執(zhí)行程序 “pxelinux.0” 放入tftp的根目錄 用于讓客戶機(jī)拉去
yum provides "*/pxelinux.0"  #使用此命令查找什么包中存在此文件
image-20200809132128113.png
  • 安裝syslinux
yum -y install syslinux

#安裝成功后查找pxe執(zhí)行程序所在目錄
rpm -ql syslinux |grep pxe
#復(fù)制文件到tftp根目錄
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
image-20200809132401232.png
  • 獲取到pxe執(zhí)行程序(引導(dǎo)文件)后 并復(fù)制到了tftp根目錄下,接下來(lái)需要把pxe程序工作所需要的配置文件,鏡像等,放置合適位置
#在tftp根目錄下創(chuàng)建文件夾
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
  • 在掛在目錄/media/cdrom下中的iso鏡像文件里,有一個(gè) “isolinux” 目錄十分重要
  • 其中的isolinux.cfg文件是 pxe執(zhí)行程序的默認(rèn)配置文件,用來(lái)配置開機(jī)菜單以及菜單對(duì)應(yīng)的功能,所以我們把他復(fù)制到tftp根目錄中pxelinux.cfg目錄下
cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
  • 之后把“isolinux” 目錄下的內(nèi)容 全部復(fù)制到 tftp根目錄下
cp /media/cdrom/isolinux/* /var/lib/tftpboot/
image-20200809133858246.png
  • 此目錄下 最重要的兩個(gè)文件 是:”vmlinuz“ ,”initrd.img“ 這兩個(gè)文件一定要匹配操作系統(tǒng),他們決定了自動(dòng)安裝的系統(tǒng)版本,其中vmlinuz是內(nèi)核文件 initrd.img是對(duì)應(yīng)的驅(qū)動(dòng)文件,如果想安裝不同的系統(tǒng)版本就找對(duì)應(yīng)的光盤里找對(duì)應(yīng)文件
  • 安裝http用于傳輸大文件
yum -y install httpd
#啟動(dòng)并設(shè)置開機(jī)自啟
systemctl start httpd
systemctl enable httpd
image-20200809135358004.png
  • 到httpd的根目錄下創(chuàng)建目錄
cd /var/www/html/
mkdir pxe
mkdir ks     #后續(xù)說(shuō)明此目錄
#并把iso鏡像掛載到此目錄下
umount /media/cdrom/
mount /dev/cdrom /var/www/html/pxe/
image-20200809135652044.png
  • 長(zhǎng)期掛載
vim /etc/fstab
#末尾加入行
/dev/cdrom                  /var/www/html/pxe  iso9660 defaults,loop 0 0
image-20200809140117925.png
  • 接下來(lái) 配置系統(tǒng)信息,linux中有一個(gè)工具是:”system-config-kickstart“ 用于配置啟動(dòng)啟動(dòng)時(shí)的配置選項(xiàng)并可以導(dǎo)出配置文件,一般在root目錄下有一個(gè) anaconda-ks.cfg 文件 就是裝系統(tǒng)是的配置選項(xiàng),如時(shí)區(qū),密碼,磁盤分區(qū)等信息,可以直接使用此文件來(lái)自動(dòng)安裝一樣的系統(tǒng)配置
  • 第一種方法直接復(fù)制root目錄下的文件 這樣就是把現(xiàn)在使用的系統(tǒng)配置復(fù)制了一份 后續(xù)的客戶機(jī)都是找個(gè)配置的系統(tǒng)
  • 我們把root下的配置文件復(fù)制到http下
cp /root/anaconda-ks.cfg /var/www/html/ks/ks.cfg  #之前創(chuàng)建的ks目錄
#把ks.cfg文件授權(quán)給apache
chown apache:apache ks.cfg
image-20200809141207172.png
  • 在ks.cfg中指定http目錄 用于安裝系統(tǒng)的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
  • 設(shè)置默認(rèn)語(yǔ)言中文或者英文,鍵盤,時(shí)區(qū),設(shè)置root密碼,勾選安裝后重啟
image-20200809145728794.png
  • 安裝方法選擇http 輸入http服務(wù)器和目錄
image-20200809145916997.png
  • 引導(dǎo)程序
image-20200809150523180.png
  • 配置磁盤分區(qū) 裸機(jī)配置
image-20200809150648428.png
  • 分區(qū)配置
image-20200809150746251.png
image-20200809150817106.png
image-20200809150849697.png
  • 添加網(wǎng)卡配置
image-20200809150919115.png
image-20200809151048688.png
  • 內(nèi)核依舊識(shí)別eth0
image-20200809151209128.png
  • 安裝默認(rèn)軟件包
image-20200809151556652.png
image-20200809151626483.png
  • 最后兩個(gè)腳本 先不管
  • 配置好之后 把文件導(dǎo)出
image-20200809151735188.png
  • 保存到能找到的位置上
image-20200809151805397.png
  • 配置好之后 把ks文件放入http目錄下
cp ks.cfg /var/www/html/ks/ks.cfg
  • 然后在pxe程序默認(rèn)文件中指定ks.cfg文件
vim /var/lib/tftpboot/pxelinux.cfg/default
  • 配置文件
  • 是否修改都不影響結(jié)果 就是等待時(shí)間長(zhǎng)
image-20200809142644844.png
image-20200809143145271.png
image-20200809142804541.png

最重要的兩塊

  1. label linux 是裝系統(tǒng)的第一個(gè)選項(xiàng) 安裝系統(tǒng),menu 是菜單名稱,kernel是內(nèi)核版本,append 是鏡像版本和啟動(dòng)鏡像的位置
  2. label check 是 裝系統(tǒng)的第二個(gè)選項(xiàng) 檢查系統(tǒng)并安裝 其中的menu default 是默認(rèn)選項(xiàng)的意思
image-20200809143112768.png

修改前

image-20200809141854973.png

修改后

image-20200809142237374.png

修改后保存退出

然后可以創(chuàng)建一個(gè)僅主機(jī)的vm測(cè)試

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容