天天看點

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

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

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

在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

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

安裝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

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

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

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

安裝syslinux啟動加載器

5. pxe啟動加載器檔案位于/usr/share/syslinux系統絕對路徑下,你可以通過列出該路徑下的内容來檢視。該步驟不是必須的,但你可能需要知道該路徑,因為在下一步中,我們将拷貝該路徑下的所有内容到tftp伺服器路徑下。

# ls /usr/share/syslinux

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

syslinux檔案

6. 現在,讓我們進入下一步,安裝tftp-server。然後,拷貝上述位置中syslinux包提供所有啟動加載器檔案到/var/lib/tftpboot路徑中,指令如下。

# yum install tftp-server

# cp -r /usr/share/syslinux/* /var/lib/tftpboot

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

安裝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

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

配置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

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

挂載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

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

拷貝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

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

安裝vsftpd伺服器

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

拷貝files到ftp路徑

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

設定ftp路徑的權限

12. 既然pxe伺服器配置已經完成,那麼就來啟動dnsmasq和vsftpd伺服器吧。驗證它們的狀況并在系統上啟用,以便讓這些服務在每次系統重新開機後都能随系統啟動,指令如下。

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

啟動dnsmasq服務

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

啟動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

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

檢查監聽端口

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

在防火牆上開啟端口

ftp://192.168.1.20/pub

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

通過浏覽器通路ftp檔案

15. 要解決pxe伺服器最終的配置或其它資訊産生的問題,請在live模式下診斷,指令如下:

# tailf /var/log/messages

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

檢查pxe日志錯誤

16. 最後,最終所需的步驟就是解除安裝centos 7 dvd,并移除實體媒體。

# umount /mnt

17. 現在,你的用戶端可以通過它們的系統bios或在bios開機自檢時按指定鍵來配置網絡啟動作為首選啟動裝置,具體方法見主機闆說明手冊。

為了選擇網絡啟動,在第一次pxe提示符出現時,請按下f8鍵進入到pxe安裝界面,然後敲Enter鍵繼續進入pxe菜單。

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

pxe網絡啟動

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

pxe網絡os啟動

18. 一旦你進入pxe菜單,請選擇你的centos 7安裝類型,敲Enter鍵繼續安裝過程,就像你使用本地啟動媒體安裝一樣。

請記住這一點,使用菜單中的變體2需要激活目标用戶端上的網際網路連接配接。在下面的螢幕截圖中,你可以通過vnc看到遠端安裝的執行個體。

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

pxe菜單

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

通過vnc遠端安裝linux

RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器RHEL/CentOS 7 中配置 PXE 網絡啟動伺服器

遠端安裝centos

以上是centos 7上配置最小化pxe伺服器的所有内容。在我的本系列下一篇文章中,我将讨論其它pxe伺服器配置過程中的其它問題,如怎樣使用kickstart檔案來配置自動化安裝centos 7,以及添加其它linux發行版到pxe菜單——ubuntu server和debian 7。

原文釋出時間:2015-02-17

本文來自雲栖合作夥伴“linux中國”

繼續閱讀