做者:JackTian
微信公衆號:傑哥的IT之旅(Jake_Internet)linux
一、什麼是 PXE?
嚴格來講,PXE 並非一種安裝方式,而是一種引導的方式。進行 PXE 安裝的必要條件是要安裝的計算機中包含一個 PXE 支持的網卡(NIC),即網卡中必需要有 PXE Client。vim
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 設置。微信
此外,在 PXE client 的 ROM 中,已經存在了 TFTP Client。PXE Client 經過 TFTP 協議到 TFTP Server 上下載所需的文件。網絡
二、什麼是 Kickstart?
KickStart 是一種無人職守安裝方式,KickStart 的工做原理是經過記錄典型的安裝過程當中所需人工干預填寫的各類參數,並生成一個名爲 ks.cfg 的文件;app
在其後的安裝過程當中(不僅侷限於生成 KickStart 安裝文件的機器)當出現要求填寫參數的狀況時,安裝程序會首先去查找 KickStart 生成的文件。dom
當找到合適的參數時,就採用找到的參數,當沒有找到合適的參數時,才須要安裝者手工干預。socket
這樣,若是 KickStart 文件涵蓋了安裝過程當中出現的全部須要填寫的參數時,安裝者徹底能夠只告訴安裝程序從何處取 ks.cfg 文件,而後去忙本身的事情。等安裝完畢,安裝程序會根據 ks.cfg 中設置的重啓選項來重啓系統,並結束安裝。ide
三、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網絡安裝
新購買的服務器不須要額外的設置直接啓動;
在boot:直接回車 或者輸入auto,將會進入默認的圖形安裝入口
選擇相應的語言
設置鍵盤類型
選擇經過URL安裝
編輯網卡
設置PXE網絡安裝服務器
實現 Kickstart 無人值守安裝
使用 kickstart 工具配置安裝應答文件,自動安裝安裝過程當中的各類設置,無需手動干預,提升裝機效率
經過系統中 system-config-kickstart 工具生成配置文件
# 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
PS: 另外,傑哥建了個學習交流羣,羣氛圍仍是蠻不錯的,你們有問題能夠在羣裏交流,有須要的小夥伴能夠加一下。