CentOs7 PXE自動批量部署
目錄
- 主服務器信息
- 環(huán)境
- PXE工作原理
- 部署主服務器
配置網(wǎng)卡IP
配置本地yum源
安裝配置DHCP
安裝配置TFTP
獲取PXE程序
安裝配置HTTP
配置ks.cfg文件(安裝信息文件)建議使用kickstart安裝
配置PEX程序默認配置文件的榛,指定路徑
配置完成
主服務器信息
- 系統(tǒng):CentOs7
- 配置:4C 4G 50GB
- 部署軟件:DHCP tftp http
- 網(wǎng)絡:VM虛擬機 僅主機網(wǎng)絡
環(huán)境
- VM虛擬機,僅主機模式取消勾選DHCP
- 在win10機器上的網(wǎng)絡配置中逻锐,配置IP
- 配置成和虛擬機僅主機模式的IP網(wǎng)段一致
PXE工作原理
- CentOs7主服務器部署DHCP服務器夫晌,使用DHCP服務器 分發(fā)網(wǎng)絡信息,客戶機網(wǎng)卡連接到網(wǎng)絡昧诱,通過DHCP服務器發(fā)送tftp服務器IP和PXE程序到客戶機
- 客戶機連接到網(wǎng)絡后讀取tftp網(wǎng)絡地址晓淀,在tftp的根目錄下找到pxe啟動程序,在內(nèi)存中執(zhí)行
- 執(zhí)行pxe程序后盏档,到指定位置讀取鏡像凶掰,配置文件等,執(zhí)行自動裝機,通過http傳輸大文件
部署主服務器
- 配置網(wǎng)卡IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
#需要配置的地方有
BOOTPROTO=static #把dhcp 改為 static 靜態(tài)IP
ONBOOT=yes #把no 改為 yes 啟動網(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
- 配置本地yum源
- 掛載磁盤
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
- 配置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
- 配置服務器
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
#文件內(nèi)容如下
#開啟給無操作系統(tǒng)設備分配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服務器地址 配置成主服務器地址(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程序
}
- 啟動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.
- 測試臨時關閉防火墻和selinux
systemctl stop firewalld
setenforce 0
- 配置tftp
#tftp的配置文件在:/etc/xinetd.d/tftp
vim /etc/xinetd.d/tftp
#修改一處
把disable = yes 改為 no
- 保存退出
- 啟動服務器并設置開啟自啟
systemctl start xinetd
systemctl enable xinetd
- 可以通過命令查看是否啟動
chkconfig --list
- 表示開啟
- tftp的根目錄是 /var/lib/tftpboot/ 客戶機會讀取此根目錄
- 接下來 需要把pxe執(zhí)行程序 “pxelinux.0” 放入tftp的根目錄 用于讓客戶機拉去
yum provides "*/pxelinux.0" #使用此命令查找什么包中存在此文件
- 安裝syslinux
yum -y install syslinux
#安裝成功后查找pxe執(zhí)行程序所在目錄
rpm -ql syslinux |grep pxe
#復制文件到tftp根目錄
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
- 獲取到pxe執(zhí)行程序(引導文件)后 并復制到了tftp根目錄下懦窘,接下來需要把pxe程序工作所需要的配置文件前翎,鏡像等,放置合適位置
#在tftp根目錄下創(chuàng)建文件夾
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
- 在掛在目錄/media/cdrom下中的iso鏡像文件里奶赠,有一個 “isolinux” 目錄十分重要
- 其中的isolinux.cfg文件是 pxe執(zhí)行程序的默認配置文件鱼填,用來配置開機菜單以及菜單對應的功能,所以我們把他復制到tftp根目錄中pxelinux.cfg目錄下
cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
- 之后把“isolinux” 目錄下的內(nèi)容 全部復制到 tftp根目錄下
cp /media/cdrom/isolinux/* /var/lib/tftpboot/
- 此目錄下 最重要的兩個文件 是:”vmlinuz“ 毅戈,”initrd.img“ 這兩個文件一定要匹配操作系統(tǒng),他們決定了自動安裝的系統(tǒng)版本愤惰,其中vmlinuz是內(nèi)核文件 initrd.img是對應的驅(qū)動文件苇经,如果想安裝不同的系統(tǒng)版本就找對應的光盤里找對應文件
- 安裝http用于傳輸大文件
yum -y install httpd
#啟動并設置開機自啟
systemctl start httpd
systemctl enable httpd
- 到httpd的根目錄下創(chuàng)建目錄
cd /var/www/html/
mkdir pxe
mkdir ks #后續(xù)說明此目錄
#并把iso鏡像掛載到此目錄下
umount /media/cdrom/
mount /dev/cdrom /var/www/html/pxe/
- 長期掛載
vim /etc/fstab
#末尾加入行
/dev/cdrom /var/www/html/pxe iso9660 defaults,loop 0 0
- 接下來 配置系統(tǒng)信息,linux中有一個工具是:”system-config-kickstart“ 用于配置啟動啟動時的配置選項并可以導出配置文件宦言,一般在root目錄下有一個 anaconda-ks.cfg 文件 就是裝系統(tǒng)是的配置選項扇单,如時區(qū),密碼奠旺,磁盤分區(qū)等信息蜘澜,可以直接使用此文件來自動安裝一樣的系統(tǒng)配置
- 第一種方法直接復制root目錄下的文件 這樣就是把現(xiàn)在使用的系統(tǒng)配置復制了一份 后續(xù)的客戶機都是找個配置的系統(tǒng)
- 我們把root下的配置文件復制到http下
cp /root/anaconda-ks.cfg /var/www/html/ks/ks.cfg #之前創(chuàng)建的ks目錄
#把ks.cfg文件授權給apache
chown apache:apache ks.cfg
- 在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
- 之后把文件放到http根目錄的ks目錄下
- 第二種方法使用kickstart
- 把yum配置成
- 安裝kickstart
yum -y install system-config-kickstart
#使用 system-config-kickstart 命令打開工具
system-config-kickstart
- 設置默認語言中文或者英文,鍵盤响疚,時區(qū)鄙信,設置root密碼,勾選安裝后重啟
- 安裝方法選擇http 輸入http服務器和目錄
- 引導程序
- 配置磁盤分區(qū) 裸機配置
- 分區(qū)配置
- 添加網(wǎng)卡配置
- 內(nèi)核依舊識別eth0
- 安裝默認軟件包
- 最后兩個腳本 先不管
- 配置好之后 把文件導出
- 保存到能找到的位置上
- 配置好之后 把ks文件放入http目錄下
cp ks.cfg /var/www/html/ks/ks.cfg
- 然后在pxe程序默認文件中指定ks.cfg文件
vim /var/lib/tftpboot/pxelinux.cfg/default
- 配置文件
- 是否修改都不影響結果 就是等待時間長
最重要的兩塊
- label linux 是裝系統(tǒng)的第一個選項 安裝系統(tǒng)忿晕,menu 是菜單名稱装诡,kernel是內(nèi)核版本,append 是鏡像版本和啟動鏡像的位置
- label check 是 裝系統(tǒng)的第二個選項 檢查系統(tǒng)并安裝 其中的menu default 是默認選項的意思
修改前
修改后
修改后保存退出
然后可以創(chuàng)建一個僅主機的vm測試