CentOS系統通過PXE實現批量無人值守安裝

来源:http://www.cnblogs.com/liwei0526vip/archive/2017/02/10/6386718.html
-Advertisement-
Play Games

通過傳統的方式安裝和部署電腦時,都需要人工干預的方式完成安裝。如果需要部署大量的類似功能的工作站或伺服器,則需要耗費大量的時間。同時傳統的安裝方式,每台電腦都需要光碟機設備及安裝光碟等介質,會額外增加部署成本。因此,許多系統管理員都希望能夠通過一種網路化的無人值守的自動安裝方式將操作系統部署到目標 ...


通過傳統的方式安裝和部署電腦時,都需要人工干預的方式完成安裝。如果需要部署大量的類似功能的工作站或伺服器,則需要耗費大量的時間。同時傳統的安裝方式,每台電腦都需要光碟機設備及安裝光碟等介質,會額外增加部署成本。因此,許多系統管理員都希望能夠通過一種網路化的無人值守的自動安裝方式將操作系統部署到目標電腦中。

 

一、相關服務和工具

1、PXE協議

PXE 是由 Intel 設計的協議,電腦可以通過 PXE 協議從網路引導啟動。PXE 協議在啟動過程分為 client 和 server 端,PXE 協議運行過程主要解決兩個問題:首先解決 IP 地址的問題,然後解決如何傳輸操作系統啟動文件和安裝文件的問題。對於第一個問題,可以通過 DHCP Server 解決,通常情況下 DHCP 伺服器主要用於分配 IP 地址給客戶端。但在 PXE 環境下,DHCP 伺服器需要額外載入 PXE 的相關配置。針對第二個問題,在啟動初期因為 PXE client 中有相應的 TFTP 客戶端,可以通過 TFTP 協議到 TFTP 伺服器中下載相關文件啟動電腦。後期在安裝過程中,則通過 FTP 或 NFS 協議提供大量的操作系統安裝文件的下載。

2、Kickstart

通過傳統的方式安裝和部署電腦時,都會要求通過交互的方式,回答各類問題,以完成安裝和部署任務,過程繁瑣,且無法實現自動化。紅帽公司開發了 Kickstart 的安裝方法,通過 ks 文件可以解決所有普通安裝方式中需要回答的問題。可以通過 system-config-kickstart 工具定製 ks 文件,也可以通過相關語法來手工編寫安裝腳本。

3、CentOS操作系統

本次實驗中所使用和安裝的操作系統為CentOS 7,理論上 CentOS 6也是適用的。

4、DHCP

動態主機配置協議,主要用於給 DHCP 客戶端自動分配 IP 地址,便於用戶管理網路內部的電腦。針對 PXE 環境下,DHCP 伺服器除分配 IP 地址外,還需要額外配置”next-server”選項定義 TFTP 伺服器的地址,設置”filename”選項定義啟動文件的名稱。並且啟動”booting”與”bootp”的支持。

5、TFTP與FTP

簡單文件傳輸協議(TFTP)主要用於為客戶機與伺服器之間進行簡單文件傳輸的協議。在 PXE 早期啟動過程中,主要通過 TFTP 協議傳輸”pxelinux.0”。文件傳輸協議(FTP),適用於大量文件傳輸的情形,在後期安裝過程,主要通過 FTP 協議傳輸 Linux 操作系統的安裝包。

 

二、安裝配置FTP服務

FTP 服務主要是下載 ks.cfg 文件和 操作系統文件的,也可以用 HTTP 或 NFS 來代替。

1、安裝vsftpd服務

[root@localhost ~]# yum install -y vsftpd

2、提供操作系統鏡像文件

FTP 預設配置即可,我們需要適用匿名用戶。通過ftp安裝操作系統,我們需要把操作系統鏡像文件拷貝到這個匿名用戶目錄
[root@localhost ~]# mount /dev/cdrom /var/ftp/pub/ # /var/ftp/pub是ftp的匿名用戶目錄

3、啟動ftp服務

[root@localhost ~]# systemctl start  vsftpd    # 啟動ftp服務
[root@localhost ~]# systemctl enable vsftpd    # 設置開機啟動

 

三、安裝dhcp和tftp

DHCP 和 TFTP 服務可以選擇單獨分別去安裝,也可以通過安裝 dnsmasq 服務,來實現 DHCP 和 TFTP 的功能。

1、安裝dnsmasq軟體包

[root@localhost ~]# yum install -y dnsmasq

2、配置dnsmasq

dnsmasq 的配置文件是 /etc/dnsmasq.conf,主要是去掉以下相關的註釋,並設置修改 DHCP 的範圍和 TFTP 的根目錄。

bogus-priv
filterwin2k
interface=eth0
dhcp-range=192.168.0.50,192.168.0.100,12h
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/var/tftp    # tftp目錄預設是沒有的,需要手動創建
dhcp-authoritative

3、創建tftp根目錄

[root@localhost ~]# mkdir /var/tftp

4、啟動dnsmasq

[root@localhost ~]# systemctl start  dnsmasq
[root@localhost ~]# systemctl enable dnsmasq

 

四、拷貝和準備相關文件

1、從iso中拷貝內核鏡像和文件系統鏡像

cp /var/ftp/pub/images/pxeboot/initrd.img /var/tftp/    # 拷貝文件系統鏡像
cp /var/ftp/pub/images/pxeboot/vmlinuz    /var/tftp/    # 拷貝內核鏡像文件

2、生成pxe啟動文件pxelinux.0

yum install -y syslinux                           # 安裝pxelinux.0所需要的包
rpm -ql syslinux | grep "pxelinux.0"              # 查詢文件所在目錄
cp /usr/share/syslinux/pxelinux.0 /var/tftp/      # 拷貝pxelinux.0文件到tftp根目錄

3、準備預設的菜單配置文件

mkdir /var/tftp/pxelinux.cfg/         # 創建pxelinux.cfg目錄,固定目錄名稱
vim /var/tftp/pxelinux.cfg/default    # default文件,必須為這個名稱
# 編輯內容如下
default linux
prompt 1
timeout 60
display boot.msg
label linux
  kernel vmlinuz
  append initrd=initrd.img text ks=ftp://192.168.0.3/ks.cfg    # 這個地方指定了ks.cfg文件下載路徑,後邊會生成該文件

4、生成kickstart文件

kickstart 文件可以通過 system-config-kickstart 可視化工具來進行配置,生成 ks.cfg 文件;也可以通過已經安裝好的操作系統的模板文件 anaconda-ks.cfg 來稍加修改即可。下邊的 ks.cfg 文件是做實驗時的樣本,內容如下(加粗為修改部分):

#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
install
url --url=ftp://192.168.0.3/pub/    # 需要指定安裝方式通過ftp來下載安裝操作系統
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --no-activate
network  --hostname=localhost.localdomain

# Root password
rootpw --iscrypted $6$LK7yftVlSa2zcGia$4loHYYWZUosdWvZA7Qzf.0lhmrcD5n26BK1xWm7QCNBdbBSjC7MK7yAYRvmIXGI8wu.t96jo6m8RRmNyjsKY60
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --all --initlabel --drives=sda
... ... ... ... # 還有很多內容

拷貝 ks.cfg 文件到 FTP 目錄

[root@localhost ~]# cp /root/anaconda-ks.cfg /var/ftp/ks.cfg
[root@localhost ~]# chmod +r /var/ftp/ks.cfg

 

五、客戶端安裝操作系統驗證

以上工作完成之後,就可以開始安裝操作系統了:

1、準備一臺適當配置的物理機
2、連接網線,與伺服器在同一個區域網內
3、設置 BIOS 從網卡啟動
4、等待安裝

遇到的問題,有的主機即使設置了 BIOS 從 network 啟動,仍然不能正常從網路來啟動安裝,需要仔細查找到 BISO 的關於 PXE 的開關設置,然後將其打開,每個主機的 BIOS 設置方式都不同,需要自己根據具體的硬體來設置。

 


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

-Advertisement-
Play Games
更多相關文章
  • 什麼是Overdraw? Overdraw就是過度繪製 什麼是Overdraw? 怎麼來消滅overdraw呢?總的原則就是:儘量避免重疊不可見元素的繪製,基於這個原則,我們大概可以想出以下幾招: 第一招:合理選擇控制項容器 既然overdraw是因為重覆繪製了同一片區域的像素點,那我們首先想到的是解 ...
  • 晚上打開MAC,發現root帳戶突然不能正常登陸MySQL,於是打算重置密碼,看了幾篇文章,竟然重置不成功,總是得到 的錯誤,看了user的表結構也確實沒有該欄位了。經查發現是MySQL升級後將欄位名給改了, 名稱改為 了。知道原因後,按照如下命令就可以成功重置root密碼了。 Mac的MySQL版 ...
  • 起因 bonecp不具備回縮功能,即連接池持有連接之後,不會主動去釋放這些連接(即使這些連接始終處於空閑狀態),因此在使用一段時間之後,連接池會達到配置的最大值。 這種方式一定程度上造成了資源的浪費。 改造 參考tomcat jdbc的策略,每隔一段時間(可配置)會啟動定時任務掃描partition ...
  • 1、 AIX環境下查看oracle配置信息(service_name、SID、tnsname)。 SID: echo $ORACLE_SID service_name: sqlplus / as sysdba; show parameter instance_name; show parameter ...
  • 在不安裝oracle客戶端情況下用sqlplus連接資料庫: 1、去官網下載 http://www.oracle.com/technetwork/topics/winx64soft-089540.html instantclient-basic-windows.x64-11.2.0.4.0.zipi ...
  • 問題:老師,打開phpmyadmin顯示高級功能尚未完全設置部分功能未激活,應該如何解決? 這是前一陣子學生問過我的一個問題,今天我就在博客里解答你的疑問吧。 總共三步可以搞定 1、導入相關文件到資料庫 2、更改配置文件config.inc.php 3、給於root用戶相關許可權 詳細過程如下: 先找 ...
  • 原文 http://jackyrong.iteye.com/blog/2170222 在mysql的myisam引擎中,有一個是容易忽視的,叫壓縮索引PACK_KEYS , myISAM使用首碼壓縮來減小索引大小,預設情況下會壓縮字元串,也可以壓縮整數 可以使用create table時用PACK_ ...
  • 在linux的top命令里的cpu信息是什麼意思呢? Cpu(s): 62.1% us, 15.9% sy,0.1% ni, 19.4% id,2.0% wa,0.1% hi,0.4% si Mem: 8247956k total,8232004k used,15952k free,205240k ... ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...