這是我參與更文挑戰的第 15 天,活動詳情查看:更文挑戰linux
一名致力於在技術道路上的終身學習者、實踐者、分享者,一位忙起來又偶爾偷懶的原創博主,一個偶爾無聊又偶爾幽默的少年。vim
歡迎各位掘友們微信搜索「傑哥的IT之旅」關注!服務器
嚴格來講,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 的工做原理是經過記錄典型的安裝過程當中所需人工干預填寫的各類參數,並生成一個名爲 ks.cfg 的文件;socket
在其後的安裝過程當中(不僅侷限於生成 KickStart 安裝文件的機器)當出現要求填寫參數的狀況時,安裝程序會首先去查找 KickStart 生成的文件。工具
當找到合適的參數時,就採用找到的參數,當沒有找到合適的參數時,才須要安裝者手工干預。
這樣,若是 KickStart 文件涵蓋了安裝過程當中出現的全部須要填寫的參數時,安裝者徹底能夠只告訴安裝程序從何處取 ks.cfg 文件,而後去忙本身的事情。等安裝完畢,安裝程序會根據 ks.cfg 中設置的重啓選項來重啓系統,並結束安裝。
在實際的操做中每每將 TFTP Server,DHCP Server 部署在一臺機器上,統稱服務端。
PXE(Pre-boot Execution Environment,預啓動執行環境)結合 Kickstart 配置實現無人值守自動安裝
服務端IP:192.168.200.254
# service iptables stop
# setenforce 0
複製代碼
# 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-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
複製代碼
用於 PXE 網絡安裝的 Linux 內核,初始化鏡像文件可從光盤中找到分別爲 vmlinuz 和 initrd.img 位於 images/pxeboot 下,將兩個文件複製到 tftp 服務的根目錄下。
# cd /var/ftp/rhel6/images/pxeboot/
# cp vmlinuz initrd.img /var/lib/tftpboot/
複製代碼
用於 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
複製代碼
定義了三個引導入口,分別是圖型安裝(默認),文本安裝,救援模式
無人值守安裝只須要一個入口
用來爲客戶機(裸機)自動分配地址並指定引導文件位置
# 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
複製代碼
使用 kickstart 工具配置安裝應答文件,自動安裝安裝過程當中的各類設置,無需手動干預,提升裝機效率
# yum -y install system-config-kickstart
# system-config-kickstart
複製代碼
在生產環境中
預安裝腳本:可用戶安裝加載一些外置卡的驅動,例如RAID卡
安裝後腳本:可用於設置一些初始化配置
# ll /var/ftp/pub/ks.cfg
-rw-r--r--. 1 root root 1204 12月 19 00:31 /var/ftp/pub/ks.cfg
複製代碼
# 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
複製代碼
原創不易,若是你以爲這篇文章對你有點用的話,麻煩你爲本文點個贊、評論或轉發一下,由於這將是我輸出更多優質文章的動力,感謝!
咱們下期再見!