理論+實驗·PXE高效批量網絡裝機
文章目錄
- 理論+實驗·PXE高效批量網絡裝機
-
- PXE概述
-
-
- PXE批量部署的優點
- PXE(Preboot eXcution Environment)
- 服務端
- 用戶端
-
- 配置PXE裝機伺服器
-
-
- 基本部署過程
- 準備CentOS 7 安裝源
- 安裝并啟用TFTP服務
- 準備Linux核心、PXE引導程式
- 配置啟動菜單檔案
-
- 驗證PXE網絡安裝
-
-
- 為客戶機安裝系統
-
- PXE高效批量網絡裝機實驗
-
-
- 1:安裝DHCP服務
- 2:安裝tftp服務
- 3:安裝FTP服務
-
- 關于kickstart
-
-
- kickstart無人值守技術
-
- 準備應答檔案
-
-
- 應答檔案的來源
-
- PXE+kickstart自動安裝
-
-
- PXE于kickstart結合使用
- 驗證自動安裝
-
- kickstart無人值守安裝實驗
-
-
- 1:安裝system-config-kickstart
- 2:配置kickstart
- 3:修改配置檔案
-
PXE概述
PXE批量部署的優點
規模化:同時裝配多台伺服器
自動化:安裝系統、配置各種服務
遠端實作:不需要CD光牒、U盤等安裝媒體
網絡帶寬是瓶頸 建議千兆口的帶寬
指定數量的一批裸金屬
PXE(Preboot eXcution Environment)
預啟動執行環境,在操作之前運作
服務端
運作DHCP服務,用來配置設定位址、定位引導程式
運作TFTP服務,提供引導程式下載下傳
用戶端
網卡支援PXE協定
主機闆支援網絡引導
配置PXE裝機伺服器
基本部署過程
1:準備CentOS 7 安裝源(YUM倉庫)
2:安裝并啟用TFTP服務
3:提供Linux核心、PXE引導程式等
4:安裝并啟用DHCP服務
5:配置啟動菜單
準備CentOS 7 安裝源
CentOS 7 安裝源支援HTTP、FTP、NFS等協定釋出
[[email protected] ~]# yum -y install vsftpd
[[email protected] ~]# mkdir /var/ftp/centos7/
[[email protected] ~]# cp -rf /dev/cdrom/* /var/ftp/centos7/
[[email protected] ~]# systemctl start vsftpd
安裝并啟用TFTP服務
安裝tftp-server軟體包,啟用tftp服務
配置檔案位于/etc/xinetd.d/tftp
[[email protected] ~]# yum -y install tftp-server ===>安裝tftp-server
[[email protected] ~]# vi /etc/xinetd.d/tftp
disable = no ===>修改配置值
[[email protected] ~]# systemctl start tftp
[[email protected] ~]# systemctl enable tftp
準備Linux核心、PXE引導程式
Linux核心、初始化鏡像檔案分别為vmlinuz和initrd.img
引導程式為pxelinux.0,由軟體包syslinux提供
[[email protected] ~]# cd /dev/cdrom/images/pxeboot
[[email protected] pxeboot]# cp vmliunz initrd.img /var/lib/tftpboot
[[email protected] ~]# yum -y install syslinux
[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot ===>将核心拷貝到/vavr/lib/tftpboot目錄下
DHCP服務的PXE設定
[[email protected] ~]# yum -y install dhcpd
[[email protected] ~]# vi /etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.0{
......
range 192.168.100.20 192.168.100.30;
option routers 192.168.100.100;
option domain-name-servers 8.8.8.8;
next-server 192.168.100.100; ===>指定TFTP伺服器位址
filename "pxelinux.0"; ===>指定要下載下傳的引導程式檔案
}
[[email protected] ~]# systemctl start dhcpd
[[email protected] ~]# systemctl enable dhcpd
配置啟動菜單檔案
[[email protected] ~]# vi /var/lib/tftpboot/pxelinux.cfg/default ===>確定pxelinux.cfg目錄已存在
default suto
prompt 1 ===>1s提示
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux text ===>文本模式安裝
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux rescue ===>進入急救模式
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
TFTP四大檔案:
1:default檔案 需要先建立pxelinux.cfg目錄 引導配置檔案預設被加載
2:vmlinuz 壓縮核心 在default中被定義最先被加載
3:initrd.img 初始化鏡像檔案 在default中被定義第二個被加載
4:PXElinux.0 引導程式 需要安裝syslinux包才會有,在DHCP配置檔案中被定義
三大服務:
1:DHCP 讓用戶端擷取IP位址,能主動聯網PXE伺服器 配置中指向TFTP
2:TFTP: 簡單檔案系統 UDP 69 端口快速加載引導程式,引導程式的容量較小
小容量的檔案 預設配置檔案指向FTP鏡像位置
3:FTP:檔案系統 TCP 21 連接配接服務 20 傳輸資料 系統鏡像存放
大容量的檔案
驗證PXE網絡安裝
為客戶機安裝系統
調整BIOS設定,以便從網絡引導
自動擷取IP位址,并指定CentOS 7 安裝源
其餘過程與本地安裝相同
PXE高效批量網絡裝機實驗
1:安裝DHCP服務
安裝DHCP
[[email protected] ~]# yum -y install dhcp* ===>安裝dhcp
[[email protected] ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆寫"/etc/dhcp/dhcpd.conf"? yes ===>将模闆文檔直接拷貝到dhcp配置檔案裡面
[[email protected] ~]# vi /etc/dhcp/dhcpd.conf ===>修改配置檔案
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.20 192.168.100.30;
option routers 192.168.100.100;
option domain-name-servers 8.8.8.8;
next-server 192.168.100.100;
filename "pxelinux.0";
}
2:安裝tftp服務
安裝tftp服務
[[email protected] ~]# yum -y install tftp-server ===>安裝tftp-server
[[email protected] ~]# vi /etc/xinetd.d/tftp ===>修改配置檔案
disable = no ===>這一行改成no
[[email protected] ~]# yum -y install syslinux ===>安裝syslinux
[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ ===>将pxelinux.0拷貝到tftp的站點目錄下
[[email protected] tftpboot]# mount /dev/cdrom /mnt ===>挂載CD光牒
mount: /dev/sr0 寫保護,将以隻讀方式挂載
[[email protected] images]# cd /mnt/images/pxeboot/ ===>進入該目錄
[[email protected] pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/ ===>将核心跟初始化鏡像檔案拷貝到tftp站點目錄下
3:安裝FTP服務
安裝ftp服務
[[email protected] tftpboot]# yum -y install vsftpd ===>安裝vsftpd
[[email protected] tftpboot]# mkdir /var/ftp/centos7 ===>建立一個目錄存放CD光牒的鏡像
[[email protected] tftpboot]# mount /dev/cdrom /mnt ===>挂載CD光牒
[[email protected] tftpboot]# cp -rf /mnt/* /var/ftp/centos7/ ===>将CD光牒裡裡面的鏡像檔案拷貝到centos7目錄下
[[email protected] tftpboot]# setenforce 0 ===>關閉核心防護
[ro[email protected] tftpboot]# systemctl stop firewalld ===>關閉防火牆
關于kickstart
kickstart無人值守技術
建立應答檔案,預先定義好各種安裝設定 ===>ks.cfg
免去互動設定過程,進而實作全自動話安裝
準備應答檔案
應答檔案的來源
編輯CentOS 7 系統中現有的應答檔案
/root/anaconda-ks.cfg ===>目前系統内都會有這個檔案
使用system-config-kickstart工具建立新的應答檔案
需要安裝system-config-kickstart軟體包
PXE+kickstart自動安裝
PXE于kickstart結合使用
[[email protected] ~]# vi /var/lib/pxelinux.cfg/default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cfg
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
驗證自動安裝
将客戶機以PXE方式引導
系統會自動完成安裝,并配置好軟體倉庫
整個安裝過程無需手動幹預
kickstart無人值守安裝實驗
1:安裝system-config-kickstart
[[email protected] ~]# yum -y install system-config-kickstart ===>安裝system-config-kickstart
2:配置kickstart
打開kickstart軟體
1)基本配置
2)安裝方法
3)引導裝載程式選項
4)分區資訊
5)網絡配置
6)防火牆配置
7)安裝後腳本
8)儲存到/var/ftp/目錄下
3:修改配置檔案
[[email protected] ~]# cd /root
[[email protected] ~]# ls
anaconda-ks.cfg 公共 視訊 文檔 音樂
initial-setup-ks.cfg 模闆 圖檔 下載下傳 桌面
[[email protected] ~]# vi anaconda-ks.cfg ===>複制配置檔案裡面的下面這些内容
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools
%end
[[email protected] ~]# cd /var/ftp/ ===>進入該目錄
[[email protected] ftp]# ls ===>檢視
centos7 ks.cfg pub
[[email protected] ftp]# vi ks.cfg ===>修改配置檔案(把之前複制的全部粘貼到該檔案最後)
[[email protected] ftp]# cd /var/lib/tftpboot/ ===>進入該目錄
[[email protected] tftpboot]# ll ===>檢視
總用量 57872
-rw-r--r--. 1 root root 52584760 7月 13 17:29 initrd.img
-rw-r--r--. 1 root root 26759 7月 13 17:25 pxelinux.0
drwxr-xr-x. 2 root root 21 7月 13 18:56 pxelinux.cfg
-rwxr-xr-x. 1 root root 6639904 7月 13 17:29 vmlinuz
[[email protected] tftpboot]# cd pxelinux.cfg/ ===>進入該目錄
[[email protected] pxelinux.cfg]# ls ===>檢視
default
[[email protected] pxelinux.cfg]# vi default ===>修改配置檔案
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cfg
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7