PXE+Kickstart無人值守安裝安裝Centos7.9

来源:https://www.cnblogs.com/misakivv/p/18190306
-Advertisement-
Play Games

目錄一、什麼是PXE1、簡介2、工作模式3、工作流程二、什麼是Kickstart1、簡介2、觸發方式三、無人值守安裝系統工作流程四、實驗部署1、環境準備2、服務端:關閉防火牆和selinux3、添加一張僅主機的網卡4、配置僅主機的網卡4.1、修改網路連接名4.2、配IP地址4.3、重啟網卡5、配置D ...


目錄

一、什麼是PXE

1、簡介

PXE(Preboot Execution Environment,預啟動執行環境)是一種由Intel公司設計的網路引導技術協議。它使電腦能夠在沒有本地操作系統、硬碟或引導媒體的情況下,通過網路介面卡(NIC)從遠程伺服器下載引導程式和其他操作系統安裝文件,進而實現遠程安裝操作系統或其他軟體。

2、工作模式

基於Client/Server架構

  • PXE客戶端:通常內置在支持PXE的網路適配器的只讀存儲器(ROM)中,當電腦啟動時,BIOS將控制權交給PXE客戶端軟體,該軟體通過網路發出啟動請求。
  • PXE伺服器:接收到客戶端的請求後,會分配IP地址給客戶端(通常通過DHCP伺服器),並提供引導文件(如Linux內核、初始化RAM磁碟等)供客戶端下載。這些文件常常通過TFTP(Trivial File Transfer Protocol)協議傳輸。

3、工作流程

A1A32KFOkgu9AAAAAElFTkSuQmCC

1、啟動過程:電腦在啟動時通過BIOS或UEFI發出PXE啟動請求,並廣播該請求到網路中的所有設備。

2、DHCP提供IP地址:PXE客戶端接收到廣播請求後,會通過DHCP(Dynamic Host Configuration Protocol)協議向DHCP伺服器發送請求,以獲取IP地址和其他網路配置信息。

3、DHCP回應:DHCP伺服器接收到PXE客戶端的請求後,會分配一個可用的IP地址,並將其作為回應發送給PXE客戶端。

4、TFTP載入啟動文件:PXE客戶端通過TFTP(Trivial File Transfer Protocol)從網路中的TFTP伺服器下載啟動文件(通常稱為pxelinux.0)。

5、啟動文件執行:PXE客戶端執行下載的啟動文件,該文件包含了操作系統鏡像的位置和其他配置信息。

6、操作系統鏡像下載:根據啟動文件中指定的位置,PXE客戶端通過TFTP從網路中的TFTP伺服器下載操作系統鏡像文件。

7、操作系統載入和安裝:一旦操作系統鏡像文件下載完成,PXE客戶端會將其載入到電腦的記憶體中,並開始執行操作系統的安裝過程。

二、什麼是Kickstart

1、簡介

Kickstart是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄典型的需要人工干預填寫的各種參數,並生成一個名為 ks.cfg的文件。

如果在安裝過程中(不只局限於生成Kickstart安裝文件的機器)出現要填寫參數的情況,安裝程式首先會去查找 Kickstart生成的文件,如果找到合適的參數,就採用所找到的參數;如果沒有找到合適的參數,便需要安裝者手工干預了。

所以,如果Kickstart文件涵蓋了安裝過程中可能出現的所有需要填寫的參數,那麼安裝者完全可以只告訴安裝程式從何處取ks.cfg文件。等安裝完畢,安裝程式會根據ks.cfg中的設置重啟系統,並結束安裝

2、觸發方式

  • 通過網路使用 PXE(預啟動執行環境)引導時引用 Kickstart 文件位置。
  • 使用光碟、USB等可移動介質上的引導菜單選項指定 Kickstart 文件路徑。
  • 在虛擬化平臺中,通過ISO映像或配置管理工具傳遞Kickstart配置。

三、無人值守安裝系統工作流程

152331551083531

四、實驗部署

1、環境準備

實驗環境:VMware Workstation 16 Pro

系統平臺:Centos7.9(最小化安裝)

2、服務端:關閉防火牆和selinux

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

image-20240513213156925

3、添加一張僅主機的網卡

image-20240513213833879

image-20240513214050506

image-20240513214202430

image-20240513214358617

4、配置僅主機的網卡

4.1、修改網路連接名

預設的乙太網連接會被命名為"有線連接 1"

image-20240513214605429

nmcli connection modify '有線連接 1' con-name ens36

4.2、配IP地址

按照自己的ip地址網段和網路連接名修改

nmcli connection modify ens36 ipv4.addresses 192.168.80.10/24 autoconnect yes ipv4.method manual

image-20240513215700591

image-20240513215748867

4.3、重啟網卡

nmcli connection down ens36
nmcli connection up ens36

image-20240513220132947

5、配置DHCP服務

5.1、關閉僅主機網卡的本地DHCP服務

編輯-->虛擬網路編輯器

image-20240513220551037

5.2、配置服務端DHCP伺服器

yum -y install dhcp -y
vim /etc/dhcp/dhcpd.conf
subnet 192.168.80.0 netmask 255.255.255.0 {
range 192.168.80.100 192.168.80.199;
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.80.10;
filename "/pxelinux.0";
}

image-20240513221209163

  • subnet 192.168.80.0 netmask 255.255.255.0 { ... }:這部分定義了一個DHCP服務將管理的子網。192.168.80.0是子網的網路地址,netmask 255.255.255.0(或簡寫為/24)指定了子網掩碼
  • range 192.168.80.100 192.168.80.199;:定義了DHCP伺服器動態分配給客戶端的IP地址池。這意味著當客戶端請求IP地址時,DHCP伺服器將從這個範圍內隨機選擇一個未分配的IP地址分配給客戶端。(註意不要將伺服器端的ip地址包含在地址池內)
  • option subnet-mask 255.255.255.0;:設置客戶端的子網掩碼為255.255.255.0。
  • default-lease-time 21600;:設置客戶端預設的IP地址租約時間為21600秒,即6小時。
  • max-lease-time 43200;:設置客戶端最大IP地址租約時間為43200秒,即12小時。
  • next-server 192.168.80.10;:指定下一個啟動伺服器(Next Server)的IP地址為192.168.80.10。這是用於PXE引導的重要設置,指明瞭應該從哪個伺服器獲取啟動文件。
  • filename "/pxelinux.0";:指定了PXE引導過程中客戶端應請求的啟動文件名。在這個例子中,客戶端將嘗試從TFTP伺服器(通常與DHCP伺服器是同一臺機器)下載/pxelinux.0文件來繼續啟動過程。

重啟DHCP服務並開機自啟

systemctl restart dhcpd
systemctl enable dhcpd

image-20240513221840977

6、安裝tftp

  • PXE客戶端在啟動過程中,通過網路向PXE伺服器請求引導信息。TFTP伺服器負責提供這些初始引導文件
  • 在PXE引導過程中,客戶端還需要獲取安裝過程中的其他必要文件,如Linux內核(vmlinuz)、初始化RAM磁碟(initrd.img)等,這些都是通過TFTP協議從伺服器下載的。
yum install -y tftp-server
systemctl start tftp
systemctl enable tftp

image-20240513222521085

7、安裝syslinux

7.1、將pxelinux.0配置文件以及光碟鏡像中的文件複製到tftp目錄中

安裝syslinux的目的是簡化首次安裝或其他特殊用途的啟動盤

yum install syslinux -y
cd /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir -p /media/cdrom
mount /dev/cdrom /media/cdrom/
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} /var/lib/tftpboot/

image-20240513222956668

  • cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/:複製Syslinux安裝目錄下的pxelinux.0文件到TFTP根目錄。這個文件是PXE引導載入程式,允許客戶端通過網路啟動並載入菜單或直接載入內核。
  • cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/:從光碟的images/pxeboot/目錄中複製vmlinuz(Linux內核映像)和initrd.img(初始化RAM磁碟映像)到TFTP根目錄。這兩個文件是PXE引導後,客戶端實際使用的操作系統核心和早期用戶空間環境
  • cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} /var/lib/tftpboot/:從光碟的isolinux/目錄中複製vesamenu.c32(一個用於提供圖形化菜單的庫文件)和boot.msg(可能包含啟動時顯示的消息或歡迎信息的文本文件)到TFTP根目錄。這通常用於增強PXE引導時的用戶體驗,比如顯示一個圖形化的啟動菜單供用戶選擇不同的安裝或引導選項。

7.2、配置syslinux服務程式

mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default

1 default linux
64   append initrd=initrd.img inst.stage2=ftp://192.168.80.10 ks=ftp://192.168.80.10/pub    /ks.cfg quiet

image-20240513224013890

  • initrd=initrd.img: 指定使用名為initrd.img的初始化RAM磁碟作為臨時根文件系統。
  • inst.stage2=ftp://192.168.80.10: 設置第二階段安裝源為FTP伺服器,地址為192.168.80.10。這意味著操作系統安裝文件將從該FTP伺服器上獲取。
  • ks=ftp://192.168.80.10/pub/ks.cfg: 指定了Kickstart配置文件的路徑,同樣通過FTP從192.168.80.10伺服器的pub/ks.cfg位置獲取。Kickstart文件自動執行安裝過程,定義了安裝時的各種配置選項。
  • quiet: 這個參數告訴安裝程式在安裝過程中保持安靜模式,即儘量減少屏幕輸出信息,僅顯示錯誤和重要狀態更新。

8、安裝vsftpd服務

光碟鏡像時通過ftp協議傳輸的,因此要用到vsftpd服務程式

yum install -y vsftpd
systemctl restart vsftpd
systemctl enable vsftpd
cp -r /media/cdrom/* /var/ftp/

image-20240513224534172

9、創建Kickstart應答文件

Kickstart應答文件中包含了系統安裝過程中需要使用的選項和參數信息。

系統可以自動調取這個應答文件的內容,從而徹底實現無人值守安裝系統。

cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
chmod +r /var/ftp/pub/ks.cfg
vim /var/ftp/pub/ks.cfg

 5 url --url=ftp://192.168.80.10      # 刪除原本的cdrom
30 clearpart --all --initlabel         # 意思是清空所有磁碟內容並初始化磁碟

五、自動部署客戶端主機

  • 創建虛擬機
  • 自定義
  • 下一步

image-20240513225459957

下一步

image-20240513225526081

稍後安裝操作系統--> 下一步

image-20240513225544166

下一步

image-20240513225745619

管理好虛擬機名稱和位置,下一步

image-20240513225959301

下一步

image-20240513230056176

下一步

image-20240513230206854

網路類型選僅主機

image-20240513230318673

下一步

image-20240513230354919

下一步

image-20240513230416131

下一步

image-20240513230437911

下一步

image-20240513230458191

下一步

image-20240513230520833

完成

image-20240513230547172

開啟測試

image-20240513230649804

不影響無人值守

image-20240513230751101

開始設置安裝源

image-20240513231118250

自動設置root密碼,在anaconda-ks.cfg中

image-20240513231325365

成功安裝

image-20240513231510156

登錄密碼與服務端虛擬機的登錄密碼一致

image-20240513231641006

ip地址也在地址池中

image-20240513231749807

anaconda-ks.cfg就是original-ks.cfg

image-20240513231831651

  • anaconda-ks.cfg:安裝程式自動生成的
  • original-ks.cfg:模板的Kickstart配置文件

至此PXE+Kickstart無人值守安裝centos7.9操作系統完成


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...