pxe伺服器——預啟動執行環境——訓示用戶端計算機直接從網絡接口啟動、運作或安裝作業系統,而不需要燒錄cd/dvd或使用某個實體媒體,它可以減輕你網絡中多台機器同時安裝linux發行版的工作。

在rhel/centos 7中設定pxe網絡啟動
<a href="http://www.tecmint.com/centos-7-installation/" target="_blank">centos 7最小化安裝步驟</a>
<a href="http://www.tecmint.com/redhat-enterprise-linux-7-installation/" target="_blank">rhel 7最小化安裝步驟</a>
<a href="http://linux.cn/article-3977-1.html">在rhel/centos 7中配置靜态ip位址</a>
<a href="http://www.tecmint.com/remove-unwanted-services-in-centos-7/" target="_blank">移除rhel/centos 7中不要的服務</a>
<a href="http://www.tecmint.com/install-ntp-server-in-centos/" target="_blank">安裝ntp伺服器以設定rhel/centos 7的正确時間</a>
本文将介紹如何在配置有本地鏡像安裝倉庫的rhel/centos 7 64位上安裝并配置一台pxe伺服器,倉庫源由centos 7 dvd 的 iso鏡像提供,并由dnsmasq伺服器提供解析。
該機器提供了dns和dhcp服務,用于網絡啟動引導的syslinux包,tftp-server——提供了可通過網絡使用小檔案傳輸協定下載下傳的可啟動鏡像,以及提供本地挂載dvd鏡像的vsftpd伺服器——它将扮演官方rhel/centos 7鏡像安裝倉庫的角色,安裝器将從這裡提取所需的包。
<a target="_blank"></a>
1. 不需要提醒你來确定你的網絡接口卡吧,除非你的伺服器上有多個網絡接口卡,該網卡必須配置有靜态ip位址,該ip位址必須處于你要提供pxe服務的網段中。
那麼,在你配置好靜态ip位址後,更新你的系統并進行其它初始設定。請使用以下指令來安裝dnsmasq程序。
# yum install dnsmasq
安裝dnsmasq包
2. dnsmasq的預設的主配置檔案位于/etc目錄中,雖然不需要任何說明就能看懂,但編輯起來确實相當困難的,即使有很詳細的說明性注釋。
首先,確定你備份了該檔案,以便你需要在以後對它進行恢複。然後使用你愛用的文本編輯器建立一個新的空配置檔案,指令如下。
# mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
# nano /etc/dnsmasq.conf
3. 現在,複制并粘貼以下配置到dnsmasq.conf檔案中,并確定根據如下說明進行相應修改,以适應你的網絡設定。
interface=eno16777736,lo
#bind-interfaces
domain=centos7.lan
# dhcp range-leases
dhcp-range= eno16777736,192.168.1.3,192.168.1.253,255.255.255.0,1h
# pxe
dhcp-boot=pxelinux.0,pxeserver,192.168.1.20
# gateway
dhcp-option=3,192.168.1.1
# dns
dhcp-option=6,92.168.1.1, 8.8.8.8
server=8.8.4.4
# broadcast address
dhcp-option=28,10.0.0.255
# ntp server
dhcp-option=42,0.0.0.0
pxe-prompt="press f8 for menu.", 60
pxe-service=x86pc, "install centos 7 from network server 192.168.1.20", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot
dnsmasq配置
你需要修改的聲明有以下這些:
interface – 伺服器需要監聽并提供服務的網絡接口。
bind-interfaces – 取消注釋來綁定到該網絡接口
domain – 替換為你的域名。
dhcp-range – 替換為你的網絡掩碼定義的網段。
dhcp-boot – 替換該ip位址為你的網絡接口ip位址。
dhcp-option=3,192.168.1.1 – 替換該ip位址為你的網段的網關。
dhcp-option=6,92.168.1.1 – 替換該ip位址為你的dns伺服器ip——可以定義多個ip位址。
server=8.8.4.4 – 這裡放置dns轉發伺服器ip位址。
dhcp-option=28,10.0.0.255 – 替換該ip位址為網絡廣播位址——可選項。
dhcp-option=42,0.0.0.0 – 這裡放置網絡時鐘伺服器——可選項(0.0.0.0位址表示參考自身)。
pxe-prompt – 保持預設——按f8進入菜單,60秒等待時間。
pxe=service – 使用x86pc作為32為/64位架構,并在字元串引述中輸入菜單描述提示。其它類型值可以是:pc98,iaefi,alpha,arcx86,intelleanclient,ia32efi,bcefi,xscaleefi和x86-64efi。
enable-tftp – 啟用内建tftp伺服器。
tftp-root – 使用/var/lib/tftpboot——所有網絡啟動檔案所在位置。
4. 在編輯并儲存dnsmasq主配置檔案後,我們将繼續安裝syslinux pxe啟動加載器,指令如下。
# yum install syslinux
安裝syslinux啟動加載器
5. pxe啟動加載器檔案位于/usr/share/syslinux系統絕對路徑下,你可以通過列出該路徑下的内容來檢視。該步驟不是必須的,但你可能需要知道該路徑,因為在下一步中,我們将拷貝該路徑下的所有内容到tftp伺服器路徑下。
# ls /usr/share/syslinux
syslinux檔案
6. 現在,讓我們進入下一步,安裝tftp-server。然後,拷貝上述位置中syslinux包提供所有啟動加載器檔案到/var/lib/tftpboot路徑中,指令如下。
# yum install tftp-server
# cp -r /usr/share/syslinux/* /var/lib/tftpboot
安裝tftp伺服器
7. 通常,pxe伺服器從位于pxelinux.cfg檔案夾中一組指定的檔案中讀取配置(首先是guid檔案,接下來是mac檔案,最後是default檔案),該檔案夾必須位于dnsmasq主配置檔案中tftp-root聲明指定的目錄中。
建立需要的目錄pxelinux.cfg,然後添加default檔案到該目錄中,指令如下。
# mkdir /var/lib/tftpboot/pxelinux.cfg
# touch /var/lib/tftpboot/pxelinux.cfg/default
8. 現在,該來編輯pxe伺服器配置檔案了,為它添加合理的linux發行版安裝選項。請注意,該檔案中使用的所有路徑必須是相對于/var/lib/tftpboot目錄的。
下面,你可以看到配置檔案的樣例,你可以使用該模闆,但請修改安裝鏡像(kernel和initrd檔案)、協定(ftp、http、https、nfs)以及映射你網絡安裝源倉庫和路徑的ip位址等參數。
# nano /var/lib/tftpboot/pxelinux.cfg/default
添加以下整個節錄到檔案中。
default menu.c32
prompt 0
timeout 300
ontimeout local
menu title ########## pxe boot menu ##########
label 1
menu label ^1) install centos 7 x64 with local repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount
label 2
menu label ^2) install centos 7 x64 with http://mirror.centos.org repo
append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount ip=dhcp
label 3
menu label ^3) install centos 7 x64 with local repo using vnc
append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount inst.vnc inst.vncpassword=password
label 4
menu label ^4) boot from local drive
配置pxe伺服器
正如你所見,centos 7啟動鏡像(kernel和initrd)位于名為centos7的目錄,該目錄是/var/lib/tftpboot目錄的相對路徑(其系統絕對路徑為/var/lib/tftpboot/centos7),而安裝器倉庫位于可通過ftp協定通路的192.168.1.20/pub網絡位置中——在本例中,這些倉庫位于本地,因為ip位址和pxe伺服器位址相同。
同時,菜單label 3指定用戶端安裝應該通過vnc從一個遠端位置實作(這裡替換vnc密碼為一個健壯的密碼),如果你在一台沒有輸入輸出的用戶端上安裝,菜單label 2指定了作為安裝源的一個centos 7官方網際網路鏡像(這種情況要求用戶端通過dhcp和nat連接配接到網際網路)。
重要:正如你在上述配置中所看到的,我們使用了centos 7進行示範,但是你也可以定義一個 rhel 7鏡像。而下面的整個的說明和配置都隻是基于centos 7的,是以在選發行版時要注意一下。
9. 對于此步驟,需要用到centos的kernel和initrd檔案。要擷取這些檔案,你需要centos 7 dvd iso鏡像。是以,去下載下傳centos dvd鏡像吧,然後把它(刻錄成CD光牒)放入你的dvd驅動器并挂載鏡像到/mnt路徑,指令見下面。
使用dvd,而不是最小化cd鏡像的原因在于,在後面我們将使用該dvd的内容為ftp源建立本地安裝器倉庫。
# mount -o loop /dev/cdrom /mnt
# ls /mnt
挂載centos dvd
# wget http://mirrors.xservers.ro/centos/7.0.1406/isos/x86_64/centos-7.0-1406-x86_64-dvd.iso
# mount -o loop /path/to/centos-dvd.iso /mnt
10. 在dvd内容可供使用後,建立centos7目錄并将centos 7 的可啟動的 kernel和initrd映像檔案從dvd挂載位置拷貝到centos7檔案夾。
# mkdir /var/lib/tftpboot/centos7
# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7
# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos7
拷貝centos可啟動檔案
使用該方法的原因在于,今後你可能會在/var/lib/tftpboot路徑中建立新的獨立的目錄,并添加其它linux發行版到pxe菜單中,你就不會将整個目錄結構弄得一團糟了。
11. 雖然你可以通過多種協定設定安裝源鏡像,如http、https或nfs,但對于本指南,我選擇了使用ftp協定。因為通過vsftpd,你可以很便捷地配置,而且它也很穩定。
接下裡,安裝vsftpd程序,然後複制所有dvd挂載目錄中的内容到vsftpd預設伺服器路徑下(/var/ftp/pub)——這會花費一些時間,這取決于你的系統資源。然後為該路徑設定可讀權限,指令如下。
# yum install vsftpd
# cp -r /mnt/* /var/ftp/pub/
# chmod -r 755 /var/ftp/pub
安裝vsftpd伺服器
拷貝files到ftp路徑
設定ftp路徑的權限
12. 既然pxe伺服器配置已經完成,那麼就來啟動dnsmasq和vsftpd伺服器吧。驗證它們的狀況并在系統上啟用,以便讓這些服務在每次系統重新開機後都能随系統啟動,指令如下。
啟動dnsmasq服務
啟動vsftpd服務
13. 要擷取需要在防火牆打開的端口清單,以便讓客戶機可通路并從pxe伺服器啟動,請運作netstat指令并根據dnsmasq和vsftpd監聽清單添加centos 7防火牆規則。
# netstat -tulpn
# firewall-cmd --add-service=ftp --permanent ## port 21
# firewall-cmd --add-service=dns --permanent ## port 53
# firewall-cmd --add-service=dhcp --permanent ## port 67
# firewall-cmd --add-port=69/udp --permanent ## port for tftp
# firewall-cmd --add-port=4011/udp --permanent ## port for proxydhcp
# firewall-cmd --reload ## apply rules
檢查監聽端口
在防火牆上開啟端口
ftp://192.168.1.20/pub
通過浏覽器通路ftp檔案
15. 要解決pxe伺服器最終的配置或其它資訊産生的問題,請在live模式下診斷,指令如下:
# tailf /var/log/messages
檢查pxe日志錯誤
16. 最後,最終所需的步驟就是解除安裝centos 7 dvd,并移除實體媒體。
# umount /mnt
17. 現在,你的用戶端可以通過它們的系統bios或在bios開機自檢時按指定鍵來配置網絡啟動作為首選啟動裝置,具體方法見主機闆說明手冊。
為了選擇網絡啟動,在第一次pxe提示符出現時,請按下f8鍵進入到pxe安裝界面,然後敲Enter鍵繼續進入pxe菜單。
pxe網絡啟動
pxe網絡os啟動
18. 一旦你進入pxe菜單,請選擇你的centos 7安裝類型,敲Enter鍵繼續安裝過程,就像你使用本地啟動媒體安裝一樣。
請記住這一點,使用菜單中的變體2需要激活目标用戶端上的網際網路連接配接。在下面的螢幕截圖中,你可以通過vnc看到遠端安裝的執行個體。
pxe菜單
通過vnc遠端安裝linux
遠端安裝centos
以上是centos 7上配置最小化pxe伺服器的所有内容。在我的本系列下一篇文章中,我将讨論其它pxe伺服器配置過程中的其它問題,如怎樣使用kickstart檔案來配置自動化安裝centos 7,以及添加其它linux發行版到pxe菜單——ubuntu server和debian 7。
原文釋出時間:2015-02-17
本文來自雲栖合作夥伴“linux中國”