1. 程式人生 > 其它 >陣列:兩數之和

陣列:兩數之和

PXE高效批量網路裝機

一、PXE概述

1. PXE定義

PXE(預啟動執行環境,在作業系統之前執行)是由Intel公司開發的網路引導技術,工作在Client/Server模式,允許客戶機通過網路從遠端伺服器下載引導映象,並載入安裝檔案或者整個作業系統

2. PXE批量部署的優點

  • 規模化:同時裝配

(1)多臺伺服器

  • 自動化:安裝系統、匹配各種服務
  • 遠端實現:不需要光碟、U盤等安裝介質

3. PXE搭建的前提條件

(1)客戶端:

  • 客戶機的網絡卡要支援PXE協議(整合BOOTROM晶片),且主機板支援網路引導。一般大多數伺服器主機都支援,只需在BIOS設定中允許從Network或LAN啟動即可

(2)服務端:

  • 網路中有一臺DHCP伺服器以便為客戶機自動分配地址、指定引導檔案位置
  • 伺服器要通過TFTP服務(簡單檔案傳輸協議)來提供系統核心和引導映象檔案的下載

二、部署PXE遠端安裝服務

1. 搭建PXE遠端安裝伺服器

  • PXE遠端安裝伺服器集成了CentOS 7安裝源、TFTP服務、DHCP服務、FTP服務,能夠向客戶機裸機發送PXE載入程式、Linux核心、啟動選單等資料,以及提供安裝檔案。
  • TFTP(簡單檔案傳輸協議),是一個基於UDP協議實現的用於在客戶機和伺服器之間進行簡單檔案傳輸的協議,適合於小檔案傳輸的應用場合。TFTP服務預設由xinetd服務進行管理,使用UDP埠69
  • xinetd是新一代的網路守護程序服務程式,又叫超級伺服器,常用來管理多種輕量級Internet服務
  • 守護程序也稱精靈程序(Daemon),是執行在後臺的一種特殊程序。守護程序獨立於控制終端,它們常常跟隨系統啟動時啟動,在系統關閉時才結束。守護程序週期性的執行某些任務或者等待處理某些事件,Linux上的大多數伺服器都是用守護程序實現的。
  • 在系統啟動中預設的守護程序的父程序ID全都是init,守護程序特徵就是在程式執行名後加了一個d,但不是所有的尾字母是d的程序都是守護程序。

(1)安裝並啟用TFTP服務

yum install -y tftp-server xinetd
修改TFTP服務的配置檔案
vim 
/etc/xineted.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

(2)安裝並啟用DHCP服務

yum install -y 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.88.88;   #指定TFTP伺服器的地址
filename "pxelinux.0";       #指定要下載的PXE載入程式的檔案

subnet 192.168.88.0 netmask 255.255.255.0 {    #宣告要分配的網段地址
  range 192.168.88.100 192.168.88.200;         #設定地址池
  optain routers 192.168.88.88;                #預設閘道器地址指定TFTP服務的IP地址
}

systemctl start dhcpd
systemctl enable dhcpd

(3)準備Linux核心、初始化映象檔案

mount /dev/cdrom /mnt
cd /mnt/images/pxeboot
cp vmlinuz /var/lib/tftpboot/       #複製linux系統的核心檔案到TFTP根目錄下
cp initrd.img /var/lib/tftpboot/    #複製初始化映象檔案(linux引導載入模組)到TFTP根目錄下

(4)準備PXE載入程式

yum install -y syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

(5)安裝FTP服務,準備CentOS 7安裝源

yum install -y 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 1               #設定是否等待使用者選擇,“1”表示等待使用者控制

label auto             #圖形安裝(預設)引匯入口,label 用來定義啟動項
kernel vmlinuz         #kernel 和 append用來定義引導引數
append initrd=initrd.img method=ftp://192.168.88.88/centos7

label linux text       #文字安裝引匯入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.88.88/centos7

label linux rescue     #救援模式引匯入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.88.88/centos7

(7)關閉防火牆

systemctl stop firewalld
setenforce 0

2. 驗證PXE網路安裝

(1)使用VMware建立的虛擬機器進行測試,虛擬機器記憶體至少需要2GB,否則在啟動安裝時可能會報錯。

(2)開啟虛擬機器,在提示字串“boot:”後直接按Enter鍵(或執行“auto”命令),將會自動通過網路下載安裝檔案,並進行預設的圖形安裝入口;

  • 若執行“linux text”命令,則進入文字安裝入口;
  • 若執行“linux rescue”命令,則進入救援模式。

三、實現Kickstart無人值守安裝

1. 準備安裝應答檔案

(1)安裝kickstart工具

yum install -y system-config-kickstart

(2)開啟“kickstart 配置程式”視窗

通過桌面選單“應用程式”-->“系統工具”-->“kickstart”開啟

執行“system-config-kickstart”命令開啟

(3)配置kickstart選項

①、基本配置
  • 預設語言設為“中文(簡體)”
  • 時區設為“Asia/Shanghai”
  • 設定root密碼
  • 高階配置中勾選“安裝後重啟”
②、安裝方法
③、引導裝載程式選項
  • “安裝型別”:安裝新引導裝載程式
  • “安裝選項”:在主引導記錄(MBR)中安裝引導裝載程
④、分割槽資訊
  • 主引導記錄:清除主引導記錄
  • 分割槽:刪除所有現存分割槽
  • 磁碟標籤:初始化磁碟標籤
  • 佈局:新增分割槽
  • 掛載點:/boot,檔案系統型別,xfs,固定大小500M
  • 檔案系統型別:swap,固定大小:4096
  • 掛載點:/home,檔案系統型別:xfs,固定的大小4096M
  • 掛載點:/,檔案系統型別:xfs,使用磁碟上全部未使用空間

注:以上為自定義分割槽,可根據具體需求更改磁碟分割槽,sawp分割槽容量一般設為為記憶體的1.5-2倍。

⑤、網路配置
  • 新增網路裝置“ens33”
  • 網路型別設為“DHCP”
⑥、防火牆配置
  • 禁用SELinux、禁用防火牆
⑦、安裝後腳本
  • 勾選“使用解釋程式”:/bin/bash
  • 設定自動建立YUM倉庫
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
echo '[local]
name=local
baseurl=ftp://192.168.88.88/centos7
enbled=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 /var/ftp/ks.cfg
%packages
@^minimal
%end

(6)編輯引導選單檔案default,新增ks引導引數

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.88.88/centos7 ks=ftp://192.168.88.88/ks.cfg
#新增ks引導引數以指定ks.cfg應答檔案的URL路徑

(7)客戶機開機

當客戶機每次以PXE方式引導時,將自動下載ks.cfg應答配置檔案,然後根據其中的設定安裝CentOS 7系統,而無需手工干預。

例如我們設定的自動安裝yum源倉庫

可通過命令“cat /etc/yum.repos.d/local.repol”檢視是否已成功建立yum源倉庫