另一種批量裝機神器-----使用PXE批量裝機
一、PXE是什麼
PXE(預啟動執行環境,在作業系統之前執行)是由Intel公司開發的網路引導技術,工作在Client/Server模式,允許客戶機通過網路從遠端伺服器下載引導映象,並載入安裝檔案或者整個作業系統。
二、PXE的三個優點
- 規模化:同時裝配多臺伺服器;
- 自動化:安裝系統、配置各種服務;
- 遠端實現:不需要光碟、U 盤等安裝介質。
三、能使用PXE裝機的前提
- 客戶機
- 客戶機的網路卡要支援PXE協議(整合BOOTROM晶片)
- 主機板支援網路引導。有一些需在BIOS設定中允許從 Network 或 LAN 啟動即可。
- 服務端
- 要 DHCP 伺服器:為客戶機自動分配地址、指定引導檔案位置。
- 伺服器要開啟 TFTP服務(簡單檔案傳輸協議):用來提供系統核心和引導映象檔案的下載。
- 伺服器中使用FTP服務(或http/nfs):提供yum安裝源
- 安裝軟體包syslinux:提供PXE載入程式
xinetd服務:新一代的網路守護程式服務程式,又叫超級伺服器,常用來管理多種輕量級Internet服務。
四、搭建 PXE 遠端安裝伺服器
1.安裝並啟用 TFTP 服務
yum -y install tftp-server xinetd
#修改TFTP服務的配置檔案
vim /etc/xinetd.d/tftp
protocol = udp #TFTP預設使用UDP協議
wait = no #no表示客戶機可以多臺一起連線,yes表示客戶機只能一臺一臺連線
server_args = -s /var/lib/tftpboot #指定TFTP根目錄(引導檔案的儲存路徑)
disable = no #no表示開啟TFTP服務
systemctl start tftp
systemctl enable tftp
systemctl start xinetd
systemctl enable xinetd
wq儲存配置檔案後,開啟服務並設為開機自啟
2.安裝並啟用 DHCP 服務
yum -y install dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#修改DHCP服務的配置檔案
vim /etc/dhcp/dhcpd.conf
ddns-update-style none; #禁用 DNS 動態更新
next-server 192.168.163.5; #指定 TFTP 伺服器的地址
filename "pxelinux.0"; #指定要下載的 PXE 載入程式的檔案
subnet 192.168.163.0 netmask 255.255.255.0 { #宣告要分配的網段地址
range 192.168.163.100 192.168.163.200; #設定地址池
option routers 192.168.163.5; #預設閘道器地址指向TFTP伺服器的IP地址
}
systemctl start dhcpd
systemctl enable dhcpd
wq儲存配置檔案後,開啟服務並設為開機自啟
3.準備 Linux 核心、初始化映象檔案
mount /dev/sr0 /mnt
cd /mnt/images/pxeboot
cp vmlinuz /var/lib/tftpboot/ #複製 Linux系統的核心檔案 到TFTP根目錄下
cp initrd.img /var/lib/tftpboot/ #複製 初始化映象檔案(linux引導載入模組)到TFTP根目錄下
4.準備 PXE 載入程式
yum -y install syslinux #PXE載入程式由軟體包 syslinux 提供
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #複製 PXE載入程式 到TFTP根目錄下
5.安裝FTP服務,準備CentOS 7 安裝源
yum -y install vsftpd
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7/
systemctl start vsftpd
systemctl enable vsftpd
6.配置啟動選單檔案
預設的啟動選單檔案在TFTP根目錄的 pxelinux.cfg子目錄下,檔名為default
mkdir /var/lib/tftpboot/pxelinux.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
default auto #指定預設入口名稱
prompt 0 #設定是否等待使用者選擇,“1”表示等待使用者控制
label auto #圖形安裝(預設)引匯入口,label 用來定義啟動項
kernel vmlinuz #kernel 和 append用來定義引導引數
append initrd=initrd.img method=ftp://192.168.163.5/centos7
label linux text #文字安裝引匯入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.163.5/centos7
label linux rescue #救援模式引匯入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.163.5/centos7
7.關閉防火牆
systemctl stop firewalld.service
setenforce 0
8、驗證 PXE 網路安裝
- 使用 VMware建立的虛擬機器進行測試,虛擬機器記憶體至少需要 2GB,否則在啟動安裝時可能會報錯。
- 開啟虛擬機器,在配置啟動選單預設檔案default步驟時,
- 設定的是“prompt 1 ” ,則會卡在一個介面,有一行提示字串“boot:”
- 直接按Enter鍵(或執行“auto”命令),將會自動通過網路下載安裝檔案,並進入預設的圖形安裝入口;
- 若執行“linux text”命令,則進入文字安裝入口;
- 若執行 “linux rescue”命令,則進入救援模式。
- 如果設定的是“prompt 0 ”,不需要任何操作,直接進入預設的圖形安裝入口。
- 設定的是“prompt 1 ” ,則會卡在一個介面,有一行提示字串“boot:”
重新開啟一臺沒裝系統的空白虛擬機器,點選開機自動載入配置檔案。
到這步,PXE算是完成了。
看到這裡,你會發現這並沒有開機自動裝機,只是進入了安裝介面而已,這時候就需要用的Kickstart無人值守安裝程式了
五、Kickstart 無人值守安裝
1、安裝system-config-kickstart 工具
yum install -y system-config-kickstart
2、開啟“Kickstart 配置程式”視窗
方法一:
通過桌面選單“應用程式”-->“系統工具”-->“Kickstart” 開啟
方法二:
執行 “system-config-kickstart” 命令開啟
方法一:在圖形化介面裡按下圖步驟點開程式
方法二:
3、配置kickstart選項
基本配置:
預設語言設為“中文(簡體)”
時區設為“Asia/Shanghai”
設定root密碼
高階配置中勾選“安裝後重啟”。
安裝方法:
選FTP
FTP伺服器:ftp://192.168.163.5
FTP目錄:centos7
引導裝載程式選項:
“安裝型別”:安裝新引導裝載程式
“安裝選項”:在主開機記錄(MBR)中安裝引導裝載程式
分割槽資訊:
主開機記錄:清除主開機記錄
分割槽:刪除所有現存分割槽
磁碟標籤:初始化磁碟標籤
佈局:新增分割槽
掛載點:/boot,檔案系統型別:xfs,固定大小:500M
檔案系統型別:swap,固定大小:4096M
掛載點:/home,檔案系統型別:xfs,固定大小:4096M
掛載點:/,檔案系統型別:xfs,使用磁碟上全部未使用空間
下面是我建立四個分割槽的截圖,僅供參考。(想創什麼分割槽也可以自己建,下面是常用的四個分割槽)
網路配置:
新增網路裝置“ens33”
網路型別設為“DHCP”
防火牆配置:
禁用 SELinux、禁用防火牆
安裝後指令碼:
勾選“使用解釋程式”:/bin/bash
rm -rf /etc/yum.repos.d/*
echo '[local]
name=local
baseurl=ftp://192.168.163.5/centos7
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo
其它選項保持預設設定即可
4、儲存自動應答檔案
選擇“Kickstart 配置程式”視窗的“檔案”-->“儲存”命令,選擇指定儲存位置,檔名為ks.cfg
預設儲存在/root/ks.cfg
cp /root/ks.cfg /var/ftp/ks.cfg
5、配置需要安裝的軟體包
可以根據需要將/root/anaconda-ks.cfg 的軟體包安裝指令碼複製到 ks.cfg檔案中,只需要複製%packages 到%end 部分即可。
如要求最小化安裝,可複製下面內容:
vim ks.cfg
%packages
@^minimal
%end
6、編輯引導選單檔案 default,新增 ks 引導引數
vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0 #設定是否等待使用者選擇,“0”表示不等待使用者控制
label auto
kernel vmlinuz #kernel 和 append用來定義引導引數
append initrd=initrd.img method=ftp://192.168.163.5/centos7 ks=ftp://192.168.163.5/ks.cfg
#新增 ks 引導引數以指定 ks.cfg 應答檔案的 URL 路徑
7、驗證無人值守安裝
當客戶機每次以PXE方式引導時,將自動下載ks.cfg應答配置檔案,然後根據其中的設定安裝CentOS 7 系統,而無須手工干預。
cat /etc/yum.repos.d/local.repo
完成裝機
相關文章
- PXE高效批量網路裝機的解析
- Linux——PXE高效批量網路裝機Linux
- PXE + Kickstart無人值守批量安裝OS
- Windows使用批處理給手機批量安裝apk檔案WindowsAPK
- pxe基礎的批次化裝機
- 多種方式批量安裝作業系統作業系統
- 使用adb如何批量給裝置安裝apkAPK
- 批量ping主機
- 批量機器登入
- kickstart+PXE+dhcp+nfs 批量無人值守自動化安裝作業系統NFS作業系統
- PXE高效網路裝機與Kickstart無人值守安裝
- puppet之java批量安裝案例Java
- puppet之mysql批量安裝案例MySql
- cobbler 批量安裝linux薦Linux
- 【Vmwere】用powershell批量部署虛機
- PXE安裝
- python庫批量安裝的方法Python
- Ansible批量更新遠端主機使用者密碼 (包括Ansible批量做ssh互信)密碼
- win10怎麼批處理批量安裝字型_win10批量安裝字型的步驟Win10
- 批量安裝python庫函式—pipPython函式
- kickstart之批量安裝puppet客戶端客戶端
- 批量監控主機方法2-使用rhost來實現
- 批量監控主機方法3-使用ftp來實現FTP
- Mybatis批量更新三種方式MyBatis
- android 6.0許可權機制的簡單封裝(支援批量申請許可權)Android封裝
- Python批量給雲主機配置安全組Python
- 使用Android Accessibility實現免Root自動批量安裝功能Android
- Redis中PipeLine使用(二)---批量get與批量setRedis
- 電腦用bat指令碼給手機批量自動安裝apk檔案 autoInstall.batBAT指令碼APK
- zt_Oracle批量更新】根據一個大表批量更新另一大表的方法比較Oracle
- PXE介紹(PXE+kickstart無人值守安裝)
- 9.3.2另一種計算機器2計算機
- LINUX 使用批量刪除檔案的幾種方法Linux
- 無人值守批量安裝linux作業系統Linux作業系統
- 惠普印表機怎麼安裝?惠普印表機安裝使用教程
- Linux網路服務-----實驗---PXE和Kickstart的無人值守裝機Linux
- 批量按使用者expdp
- MySQL使用Batch批量處理MySqlBAT