RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 實現無人值守安裝

這是我參與更文挑戰的第 15 天,活動詳情查看:更文挑戰linux


一名致力於在技術道路上的終身學習者、實踐者、分享者,一位忙起來又偶爾偷懶的原創博主,一個偶爾無聊又偶爾幽默的少年。vim

歡迎各位掘友們微信搜索「傑哥的IT之旅」關注!服務器

原文連接:RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 實現無人值守安裝微信

一、什麼是 PXE?

嚴格來講,PXE 並非一種安裝方式,而是一種引導的方式。進行 PXE 安裝的必要條件是要安裝的計算機中包含一個 PXE 支持的網卡(NIC),即網卡中必需要有 PXE Client。markdown

PXE (Pre-boot Execution Environment)協議使計算機能夠經過網絡啓動。協議分爲 client 和 server 端,PXE client 在網卡的 ROM 中,當計算機引導時,BIOS 把 PXE client 調入內存執行,由 PXE client 將放置在遠端的文件經過網絡下載到本地運行。網絡

運行 PXE 協議須要設置 DHCP 服務器 和 TFTP 服務器。DHCP 服務器用來給 PXE client(將要安裝系統的主機)分配一個 IP 地址,因爲是給 PXE client 分配 IP 地址,因此在配置 DHCP 服務器時須要增長相應的 PXE 設置。app

此外,在 PXE client 的 ROM 中,已經存在了 TFTP Client。PXE Client 經過 TFTP 協議到 TFTP Server 上下載所需的文件。dom

二、什麼是 Kickstart?

KickStart 是一種無人職守安裝方式,KickStart 的工做原理是經過記錄典型的安裝過程當中所需人工干預填寫的各類參數,並生成一個名爲 ks.cfg 的文件;socket

在其後的安裝過程當中(不僅侷限於生成 KickStart 安裝文件的機器)當出現要求填寫參數的狀況時,安裝程序會首先去查找 KickStart 生成的文件。工具

當找到合適的參數時,就採用找到的參數,當沒有找到合適的參數時,才須要安裝者手工干預。

這樣,若是 KickStart 文件涵蓋了安裝過程當中出現的全部須要填寫的參數時,安裝者徹底能夠只告訴安裝程序從何處取 ks.cfg 文件,而後去忙本身的事情。等安裝完畢,安裝程序會根據 ks.cfg 中設置的重啓選項來重啓系統,並結束安裝。

三、PXE 網絡裝機原理說明

  • PXE Client:表示須要安裝操做系統的機器,統稱客戶端。
  • TFTP Server:表示安裝 TFTPD 服務的機器。
  • DHCP Server:表示安裝 DHCPD 服務的機器。

在實際的操做中每每將 TFTP Server,DHCP Server 部署在一臺機器上,統稱服務端。

四、PXE 網絡裝機的基本流程

  • 客戶端向服務端上的 DHCP 發送請求 IP 地址消息,DHCP 檢查客戶端是否合法,若是合法則返回客戶端的IP地址,同時將啓動文件 pxelinux.0 的位置信息一併傳送給客戶端;
  • 客戶端向服務器上的 TFTP 發送獲取 pxelinux.0 消息,TFTP 接受到消息以後再向客戶端發送 pxelinux.0 大小信息,試探客戶端是否滿意。當 TFTP 收到客戶端返回的贊成大小信息以後,正式向客戶端發送 pxelinux.0;
  • 客戶端運行接收到的 pxelinux.0 文件;
  • 客戶端向 TFTP 發送針對本機的配置文件信息(記錄在 TFTP 上的 pxelinux.cfg 目錄下),TFTP 將配置文件發給客戶端,客戶端根據配置文件執行後續操做;
  • 客戶端向 TFTP 發送請求 Linux 內核信息,TFTP 接受到消息以後將內核發送給客戶端;
  • 客戶端向 TFTP 發送根文件請求,TFTP 接受到消息以後返回 Linux 根文件系統;
  • 客戶端啓動 Linux 內核;
  • 客戶端進入安裝模式;

五、PXE 網絡裝機的適用場景

  • 服務器無光驅或者光驅損壞,須要安裝 Linux 操做系統
  • 對系統維護不恰當,致使須要頻繁安裝 Linux 操做系統
  • 須要大規模批量部署 Linux 操做系統(應用於企業)

六、PXE 網絡裝機的前提條件

  • 客戶機網卡支持 PXE 協議(集成 BOOTROM 芯片),主板支持網絡引導(BIOS 中調整);
  • 網絡中有 DHCP 服務器爲客戶機自動分配網絡地址,而且指定引導文件位置;
  • 服務器經過 TFTP(Trivial File Transfer Protocol,簡單文件傳輸協議)提供引導鏡像文件的下載;

PXE(Pre-boot Execution Environment,預啓動執行環境)結合 Kickstart 配置實現無人值守自動安裝

七、PXE 環境部署

服務端IP:192.168.200.254

# service iptables stop
# setenforce 0
複製代碼

圖片

配置YUM倉庫

# mount /dev/cdrom /mnt/ 
# rpm -i /mnt/Packages/vsftpd-2.2.2-11.el6_4.1.x86_64.rpm
# umount /dev/cdrom
# mkdir /var/ftp/rhel6
# mount /dev/cdrom /var/ftp/rhel6/
# service vsftpd restart
複製代碼

圖片

# vim /etc/yum.repos.d/yum.repo

[base]                                //倉庫類別
name=Red Hat Enterprise Linux 6       //倉庫名稱
baseurl=ftp://192.168.3.10/rhel6      //URL訪問路徑
gpgcheck=0                            //驗證軟件包的簽名
複製代碼

圖片

圖片

安裝並啓用 TFTP 服務

TFTP 服務由 tftp-server 軟件包提供,默認經過 xinetd 超級服務進行管理,須要將 /etc/xinetd.d/tftp 中的 disable=yes 修改成 disable=no。並重啓 xinetd 服務。

# yum -y install tftp-server

# vim /etc/xinetd.d/tftp 

service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
} 
# service xinetd restart
複製代碼

準備 Linux 內核,初始化鏡像文件

用於 PXE 網絡安裝的 Linux 內核,初始化鏡像文件可從光盤中找到分別爲 vmlinuz 和 initrd.img 位於 images/pxeboot 下,將兩個文件複製到 tftp 服務的根目錄下。

# cd /var/ftp/rhel6/images/pxeboot/
# cp vmlinuz initrd.img /var/lib/tftpboot/
複製代碼

準備 PXE 引導程序,啓動菜單文件

用於 PXE 網絡安裝的引導程序爲 pxelinux.0 由軟件包 syslinux 提供,安裝軟件包後將文件複製到 tftp 服務的根目錄下。

# yum -y install syslinux
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
複製代碼

啓動菜單用來指導客戶機的引導過程,包括如何調用內核,如何加載初始化鏡像,默認的啓動菜單爲 default,應放置 tftp 根目錄的 pxelinux.cfg 子目錄中。

# mkdir /var/lib/tftpboot/pxelinux.cfg
# cat /var/lib/tftpboot/pxelinux.cfg/default
default auto                                   // 默認入口名稱
prompt 1                                       // 1:表示等待用戶控制
label auto
    kernel vmlinuz
    append initrd=initrd.img devfs=nomount ramdisk_size=8192
複製代碼

定義了三個引導入口,分別是圖型安裝(默認),文本安裝,救援模式

  • Prompt:設置是否等待用戶選擇
  • Label:定義並分隔啓動項
  • Kernel append:定義引導參數

無人值守安裝只須要一個入口

安裝並啓用DHCP服務

用來爲客戶機(裸機)自動分配地址並指定引導文件位置

# yum -y install dhcp
# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf 
cp:是否覆蓋"/etc/dhcp/dhcpd.conf"?y
# vim /etc/dhcp/dhcpd.conf
ddns-update-style none;
next-server 192.168.200.254;            # TFTP 服務器地址
filename "pxelinux.0";                  # PXE 引導程序文件名

subnet 192.168.200.0 netmask 255.255.255.0 {
option routers 192.168.200.254;
option subnet-mask 255.255.255.0;
option domain-name "crushlinux.com";
option domain-name-servers 202.106.0.20, 8.8.8.8;
range 192.168.200.100 192.168.200.200;
default-lease-time 21600;
max-lease-time 43200;
}
# service dhcpd start
複製代碼

驗證PXE網絡安裝

  • 新購買的服務器不須要額外的設置直接啓動;
  • 已有操做系統的服務器啓動時調整 BIOS 中的 Boot 選項將 Network 或 LAN 設置爲第一個,而後啓動服務器。

圖片

在boot:直接回車 或者輸入auto,將會進入默認的圖形安裝入口

圖片

選擇相應的語言

圖片

設置鍵盤類型

圖片

選擇經過URL安裝

圖片

編輯網卡

圖片

設置PXE網絡安裝服務器

圖片

實現 Kickstart 無人值守安裝

使用 kickstart 工具配置安裝應答文件,自動安裝安裝過程當中的各類設置,無需手動干預,提升裝機效率

  • 經過系統中 system-config-kickstart 工具生成配置文件
  • 修改系統中已有的 /root/anaconda-ks.cfg 文件
# yum -y install system-config-kickstart
# system-config-kickstart
複製代碼

圖片

圖片

圖片

圖片

圖片

圖片

在生產環境中

預安裝腳本:可用戶安裝加載一些外置卡的驅動,例如RAID卡
安裝後腳本:可用於設置一些初始化配置

圖片

將文件取名爲 ks.cfg,並保存到 /var/ftp/pub 下

# ll /var/ftp/pub/ks.cfg 
-rw-r--r--. 1 root root 1204 12月 19 00:31 /var/ftp/pub/ks.cfg
複製代碼

編輯引導菜單文件 default

# vim /var/lib/tftpboot/pxelinux.cfg/default 
default auto
prompt 0
label auto
        kernel vmlinuz
        append ks=ftp://192.168.200.254/pub/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=8192
複製代碼

原創不易,若是你以爲這篇文章對你有點用的話,麻煩你爲本文點個贊、評論或轉發一下,由於這將是我輸出更多優質文章的動力,感謝!

咱們下期再見!

相關文章
相關標籤/搜索