部署PXE批量裝機環境
DHCP概述及原理
• Dynamic Host Configuration Protocol
– 動态主機配置協定,由 IETF(Internet 網絡工程師任務小組)組織制定,用來簡化主機位址配置設定管理
• 主要配置設定以下入網參數
– IP位址/子網路遮罩/廣播位址
– 預設網關位址、DNS伺服器位址
DHCP原理: 廣播進行,先到先得,一個網絡裡隻能有一個DHCP伺服器
• DHCP位址配置設定的四次會話
– DISCOVERY --> OFFER --> REQUEST -->ACK
1.裝軟體包 dhcp
[[email protected] /]# yum -y install dhcp
2.配置檔案 /etc/dhcp/dhcpd.conf
vim末行模式 :r /usr/share/doc/dhcp*/dhcpd.conf.example
subnet 192.168.4.0 netmask 255.255.255.0 { #配置設定的網段
range 192.168.4.100 192.168.4.200; #配置設定的IP範圍
option domain-name-servers 192.168.4.7; #配置設定DNS伺服器
option routers 192.168.4.254; #配置設定網關位址
default-lease-time 600;
max-lease-time 7200;
}
[[email protected] /]# systemctl restart dhcpd
####################################################
網絡裝機概述
• 規模化:同時裝配多台主機
• 自動化:裝系統、配置各種服務
• 遠端實作:不需要CD光牒、U盤等實體安裝媒體
什麼是PXE網絡
• PXE,Pre-boot eXecution Environment
– 預啟動執行環境,在作業系統之前運作
– 可用于遠端安裝
PXE元件及過程分析
• 需要哪些服務元件
– DHCP服務,配置設定IP位址、定位引導程式
– TFTP服務,提供引導程式下載下傳
– HTTP服務,提供yum安裝源
• 客戶機應具備的條件
– 網卡晶片必須支援PXE協定
– 主機闆支援從網卡啟動
##################################################
一、部署DHCP服務,指定下一個伺服器位址
[[email protected] /]# vim /etc/dhcp/dhcpd.conf
…
next-server 192.168.4.7; #指定下一個伺服器位址
filename “pxelinux.0”; #指定引導檔案名稱
}
[[email protected] /]# systemctl restart dhcpd
pxelinux.0:網卡引導檔案(安裝說明書) 二進制檔案
安裝一個軟體,預設産生的網卡引導檔案名為pxelinux.0
##################################################
二、搭建tftp服務
tftp:簡單的檔案傳輸協定 預設端口為69
預設共享位置:/var/lib/tftpboot
1.安裝軟體包tftp-server
[[email protected] /]# yum -y install tftp-server
2.重新開機tftp服務
[[email protected] /]# systemctl restart tftp
3.部署pxelinux.0檔案
]# yum provides */pxelinux.0 #查詢那個包産生,該檔案
]# yum -y install syslinux
]# rpm -ql syslinux | grep pxelinux.0 #查詢軟體包安裝清單
]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
]# ls /var/lib/tftpboot/
pxelinux.0檔案—>/var/lib/tftpboot/pxelinux.cfg/default
4.部署菜單檔案
[[email protected] /]# poweroff
Connection to 192.168.4.7 closed by remote host.
Connection to 192.168.4.7 closed.
[[email protected] ~]$
圖形為虛拟機A,添加一個光驅裝置,放入CD光牒内容
[[email protected] ~]$ goa
Last login: Thu Apr 25 08:55:41 2019 from 192.168.4.254
[[email protected] ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 寫保護,将以隻讀方式挂載
[[email protected] ~]# ls /mnt/
[[email protected] ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[[email protected]~]#cp/mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[[email protected] ~]# ls /var/lib/tftpboot/pxelinux.cfg/
[[email protected] ~]# ls -l /var/lib/tftpboot/pxelinux.cfg/
5.部署 圖形子產品(vesamenu.c32) 與 背景圖檔(splash.png)
[[email protected] ~]# cp /mnt/isolinux/vesamenu.c32 /mnt/isolinux/splash.png /var/lib/tftpboot/
[[email protected] ~]# ls /var/lib/tftpboot/
6.部署 啟動核心(vmlinuz) 與 驅動程式(initrd.img)
[[email protected] ~]# cp /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img /var/lib/tftpboot/
[[email protected] ~]# ls /var/lib/tftpboot/
initrd.img pxelinux.cfg vesamenu.c32
pxelinux.0 splash.png vmlinuz
7.修改菜單檔案内容
vim /var/lib/tftpboot/pxelinux.cfg/default
1 default vesamenu.c32 #預設加載圖形子產品
2 timeout 600 #讀秒時間60秒 1/10秒
10 menu background splash.png #指定背景圖檔
11 menu title NSD1903 PXE Server #修改标題
61 label linux
62 menu label ^Install CentOS 7 #螢幕顯示
63 menu default #讀秒結束預設選擇
64 kernel vmlinuz #調用核心
65 append initrd=initrd.img #解壓驅動程式
##################################################
8.檢查服務啟動
[[email protected] ~]# systemctl restart dhcpd
[[email protected] ~]# systemctl enable dhcpd
[[email protected] ~]# systemctl restart tftp
[[email protected] ~]# systemctl enable tftp
#################################################
總結:
1.DHCP服務–>IP位址 next-server filename
2.tftp服務–>pxelinux.0
3.pxelinux.0–>讀取預設菜單檔案
4.default–>圖形子產品 背景圖檔 啟動核心 驅動程式
驗證:
建立一台虛拟機,安裝方式選擇 “網絡引導安裝(PXE)”
網絡類型選擇"private1"
####################################################
三、建構Web服務,共享CD光牒所有内容
1.安裝軟體包httpd
[[email protected] ~]# yum -y install httpd
2.重新開機httpd服務
[[email protected] ~]# systemctl restart httpd
[[email protected] ~]# systemctl enable httpd
3.共享CD光牒所有内容
[[email protected] ~]# mkdir /var/www/html/centos
[[email protected] ~]# ls /var/www/html/centos
[[email protected] ~]# mount /dev/cdrom /var/www/html/centos
mount: /dev/sr0 寫保護,将以隻讀方式挂載
[[email protected] ~]# ls /var/www/html/centos
[[email protected] ~]# firefox 192.168.4.7/centos
#####################################################
四、部署無人值守安裝,生成應答檔案
1.安裝圖形的system-config-kickstart工具,生成應答檔案
[[email protected] ~]# yum -y install system-config-kickstart
2.運作system-config-kickstart工具,進行配置
[[email protected] ~]# LANG=en system-config-kickstart
首先檢視軟體包選擇(Package Selection),是否可以使用
需要Yum倉庫的支援,必須要求YumCD光牒倉庫辨別為 [development]
[[email protected] ~]# vim /etc/yum.repos.d/local.repo
[development]
…
[[email protected] ~]# LANG=en system-config-kickstart
[[email protected] ~]# ls /root/
[[email protected] ~]# vim /root/ks.cfg
3.利用Web服務,将應答檔案ks.cfg,共享給用戶端
[[email protected] ~]# cp /root/ks.cfg /var/www/html/
[[email protected] ~]# ls /var/www/html/
4.修改菜單檔案,指定應答檔案ks.cfg
]# vim /var/lib/tftpboot/pxelinux.cfg/default
…
label linux
menu label ^Install CentOS 7
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.4.7/ks.cfg
#####################################################
總結:
1.DHCP服務–>IP位址 next-server filename
2.tftp服務–>pxelinux.0
3.pxelinux.0–>讀取預設菜單檔案
4.default–>圖形子產品 背景圖檔 啟動核心 驅動程式 應答檔案
5.ks.cfg應答檔案–> 分區 語言 鍵盤類型 裝包
# Use network installation
url --url=“http://192.168.4.7/centos”