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)境
- VM虛擬機(jī),僅主機(jī)模式取消勾選DHCP

image-20200809112512252.png
- 在win10機(jī)器上的網(wǎng)絡(luò)配置中,配置IP

image-20200809122257338.png
- 配置成和虛擬機(jī)僅主機(jī)模式的IP網(wǎng)段一致

image-20200809122340480.png
PXE工作原理
- 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ī)
- 客戶機(jī)連接到網(wǎng)絡(luò)后讀取tftp網(wǎng)絡(luò)地址,在tftp的根目錄下找到pxe啟動(dòng)程序,在內(nèi)存中執(zhí)行
- 執(zhí)行pxe程序后,到指定位置讀取鏡像,配置文件等,執(zhí)行自動(dòng)裝機(jī),通過(guò)http傳輸大文件
部署主服務(wù)器
- 配置網(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
- 配置本地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
- 配置服務(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
最重要的兩塊
- label linux 是裝系統(tǒng)的第一個(gè)選項(xiàng) 安裝系統(tǒng),menu 是菜單名稱,kernel是內(nèi)核版本,append 是鏡像版本和啟動(dòng)鏡像的位置
- 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è)試