RHEL/CentOS PXE無盤工作站

來源:互聯網
上載者:User

標籤:

 

• 關於PXE無盤工作站系統的簡介

 

PXE無盤工作站系統是指由一台或多台“系統伺服器”和多台“PXE用戶端(無盤工作站)”通過 交換器 相連組成的區域網路系統。

  

               (圖1:無盤工作站系統部署拓撲圖)

 

• 系統伺服器:通過DHCP+TFTP+NFS服務向無盤工作站提供系統支援

  · DHCP服務:向PXE用戶端分發IP地址、子網路遮罩、網關等,並指定啟動引導檔案所在伺服器

         (TFTP伺服器)的地址和PXE開機檔案(pxelinux.0)

  · TFTP服務:向PXE用戶端傳輸PXE開機檔案、PXE引導設定檔、linux核心vmlinuz,以及系

        統開機檔案initrd.img

  · NFS服務:向PXE用戶端發布工作站的系統(整個根目錄“/”的複製);為了避免磁碟IO資源的

         衝突,建議將複製的系統部署在儲存伺服器上

 

• PXE用戶端:PXE用戶端無需硬碟,但需要一塊支援PXE啟動的網卡,不過其他硬體比如主板、記憶體條、電源等,還是必須要的;將“網卡啟動”設定為首選

   

                        (圖2:PXE啟動流程圖) 

 

 

 

 

• 部署之前,先要規劃好系統伺服器和無盤工作站的工作環境

 

• 系統內容

 作業系統:  CentOS release 6.5 x86_64
  防火牆:  關閉iptables服務並禁止其開機自啟;關閉selinux
   其他:  配置好YUM倉庫:禁用無用的開機自啟服務(sshd服務和rpcbind服務不能禁用)                                  

 

 

 

 

• 軟體環境

dhcp-4.1.1-49.P1.el6.centos.x86_64                   // 提供DHCP 服務;指定TFTP 地址及PXE 開機檔案                   
tftp-server-0.49-7.el6.x86_64 // 向無盤工作站傳輸系統開機檔案等
nfs-utils-1.2.3-64.el6.x86_64 // 共用發布工作站系統
syslinux-4.04-3.el6.x86_64 // 提供引導程式"pxelinux.0"
rpcbind-0.2.0-11.el6.x86_64 // 為NFS 服務的依賴程式
dracut-004-388.el6.noarch // 用來製作啟動initrd 鏡像
dracut-network-004-388.el6.noarch // 依賴包,否則將導致PXE無法啟動

 

 

 

 

 

 

 

• 網路環境

 主機類別:  主機名稱:  IP地址:  子網路遮罩:  網關/路由:
 系統伺服器A  HostServerA  192.168.8.8  255.255.255.0  192.168.8.254
 系統伺服器B   HostServerB  192.168.8.9  255.255.255.0  192.168.8.254
 無盤工作站   WorkStation/WS100~200  192.168.8.100~200  255.255.255.0  192.168.8.254/不設定(禁止工作站連網)

 

 

 

 

 

 

分別在“系統伺服器A”和“系統伺服器B”上進行下列所有操作:

 

• 開始進行安裝部署了,首先,要複製好工作站的系統模板

 

1. 建立工作站系統模板的存放目錄(/nodiskos/workstation)和啟動引導檔案存放目錄(/nodiskos/tftpboot)

mkdir /nodiskos                               // 系統模板+開機檔案存放目錄mkdir /nodiskos/tftpboot                      // 工作站系統開機檔案存放目錄mkdir /nodiskos/workstation                   // 工作站系統模板存放目錄

 

2. 使用rsync 工具將整個"/"目錄拷貝到/nodiskos/workstation 目錄下,去除不需要的檔案目錄

rsync -av --exclude=‘/proc‘ --exclude=‘/sys‘ --exclude=‘/tmp‘ --exclude=‘/var/tmp‘ --exclude=‘/etc/mtab‘ --exclude=‘/nodiskos‘ /* /nodiskos/workstation

 

3. 重新建立被刪掉的目錄,還原系統模板的目錄結構

cd /nodiskos/workstationmkdir proc sys tmp var/tmp

 

4.調整系統模板的裝置掛載設定檔/nodiskos/workstation/etc/fstab:刪除所有的本機存放區裝置掛載資訊(如:/和/boot);添加系統模板的掛載資訊。以“系統伺服器A”為例(注意:系統伺服器B的ip設定為192.168.8.9):

# /etc/fstab# Created by anaconda on Fri Dec 25 10:58:41 2015## Accessible filesystems, by reference, are maintained under ‘/dev/disk‘# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#192.168.8.8:/nodiskos/workstation  /  nfs    defaults      0 0tmpfs      /dev/shm           tmpfs   defaults      0 0devpts      /dev/pts          devpts  gid=5,mode=620   0 0sysfs       /sys             sysfs   defaults      0 0proc       /proc             proc    defaults       0 0

 

5. 修改系統模板的主機名稱,如WorkStation

編輯設定檔/nodiskos/workstation/etc/sysconfig/network,將HOSTNAME=參數值修改為WorkStation

 

6. 最後,刪除所有ifcfg-eth*網卡設定檔,只需保留ifcfg-lo

rm -f /nodiskos/workstation/etc/sysconfig/network-scripts/ifcfg-eth*

 

7. 最後的最後,將整個工作站系統模板打包備份到系統伺服器的/opt 目錄下,以作備用(例如下面的第8 步,為單個/每個工作站建立獨立的系統)

cd /nodiskostar -cvf /opt/workstation.tar workstation

 

8. 正如第7 步所述,可根據需求,為單個/每個工作站建立獨立的系統。以WS100~110 為例:

1)將備份的系統模板解壓下來,並批量分別拷貝到各自獨立工作站的系統目錄下

cd /optfor i in $(seq -w 100 110)> do>   tar -xvf workstation.tar>   mv workstation /nodiskos/WS$i> done

2)最後,還需要為每台獨立的工作站調整fstab 的掛載資訊、network 的主機名稱、hosts 的本地區名解析。可執行如下shell 指令碼進行批量替換,需要賦予執行許可權:

# 以WS100~110 為例# 第一個for 迴圈是替換fstab 的掛載資訊和主機名稱,其中:# 第1 個sed 是替換/nodiskos/WS###/etc/fstab 的掛載資訊# 第2 個sed 是替換主機名稱# 第3 個sed 是在hosts 檔案中增加原生網域名稱解析# 第二個for 迴圈是列印出替換後的結果,以便於檢查是否替換正確# 指令碼內容如下:#!/bin/bashfor i in $(seq -w 100 110)do  sed -i "/nodiskos/s/workstation/WS$i/g" /nodiskos/WS$i/etc/fstab  sed -i "s/WorkStation/WS$i/g" /nodiskos/WS$i/etc/sysconfig/network  sed -i "1a 192.168.8.$i WS$i" /nodiskos/WS$i/etc/hostsdonefor i in $(seq -w 100 110)do  echo -e "fstab : \c" && sed -n "/nodiskos/p" /nodiskos/WS$i/etc/fstab  echo -e "network : \c" && sed -n "/HOST/p" /nodiskos/WS$i/etc/sysconfig/network  echo -e "hosts : \c" && sed -n "/192.168/p" /nodiskos/WS$i/etc/hosts  echo -e "\n"done

 

 

 

• 接下來,準備好工作站啟動引導需要的檔案

 

1. 安裝syslinux 和dracut 軟體包

yum install syslinux dracut dracut-network

 

2. 拷貝PXE開機檔案(由syslinux 程式提供)

cp /usr/share/syslinux/pxelinux.0 /nodiskos/tftpboot

 

3. 拷貝用linux核心檔案vmlinuz

cp /boot/vmlinuz-2.6.32-431.el6.x86_64 /nodiskos/tftpboot

 

4. 建立用於系統啟動 鏡像檔案initrd.img(先執行命令 uname -r 查看核心版本,如:2.6.32-431.el6.x86_64)

dracut initrd-2.6.32-431.el6.x86_64.img 2.6.32-431.el6.x86_64chmod 644 initrd-2.6.32-431.el6.x86_64.imgmv initrd-2.6.32-431.el6.x86_64.img /nodiskos/tftpboot

 

 5. 在/nodiskos/tftpboot/pxelinux.cfg/目錄下建立預設的PXE引導設定檔"default"(也可為單個/每個工作站建立獨立的引導設定檔,如WS100)

# prompt 0 表示工作站立即啟動,1 表示工作站等待選擇# kernel 指定核心檔案# append 後面的加底線的是一行內容,不能換行!!!# append 附加參數值解釋說明:# initrd= 指定用於引導的initrd 鏡像檔案# root= 指定工作站系統的nfs 路徑(注意:“系統伺服器B”設定成192.168.8.9)# selinux= 設定selinux 開關,0 表示關閉,1 表示開啟,預設為1# rw 設定工作站系統為可讀寫# nomodeset 這個參數是配合後面的vga=參數一起使用,設定解析度# vga= 這個參數值是設定解析度,0x 表示十六進位,0314 表示800*600 16 位色;若無特殊需求,建議刪除這2個參數# 檔案內容如下:default autolabel autoprompt 0kernel vmlinuz-2.6.32-431.el6.x86_64append initrd=initrd-2.6.32-431.el6.x86_64.img root=nfs:192.168.8.8:/nodiskos/workstation selinux=0 ip=dhcp rw nomodeset vga=0x0314

 

6. 若要為單個/每個工作站建立獨立的引導設定檔,以WS100~110 為例:

1)引導設定檔的檔案名稱為該工作站IP 位址的十六進位轉換值。如WS100 的IP 位址為192.168.8.100,那麼它的設定檔的檔案名稱就是"C0A80864";對照關係如下:192→C0,168→A8,8→08,100→64。

2)檔案內容可參照default,只需將append 下的root=參數值指定為對應的WS100 的nfs 路徑,例如:root=nfs:192.168.8.8:/nodiskos/WS100,前提是/nodiskos/WS100 需要存在。

3)為了方便,可用如下shell 指令碼,參照預設設定檔default,進行大量建立和修改:

# 以WS100~110 為例# for 迴圈的主體說明:# 第1 行:printf 是將WS###的IP 位址轉換成十六進位,並賦值給參數ws_name# 第2 行:以default 檔案為模板,以IP 位址的十六進位值為檔案名稱,進行批量複製# 第3 行:批量修改root=參數值指定的WS###的nfs 路徑# 第4 行:列印出替換後的結果,以便於檢查是否替換正確# 指令碼內容如下:#!/bin/bashcd /nodiskos/tftpboot/pxelinux.cfg/for i in $(seq -w 100 110)do  ws_name=$(printf "%02X" 192 168 8 $i)  cp default $ws_name  sed -i "s/workstation/WS$i/g" $ws_name  sed -n "/append/p" $ws_namedone

 

7. 最後,/disklessboot/tftpboot 目錄下應該有下列幾個檔案/目錄:

initrd-2.6.32-431.el6.x86_64.img            // 用於引導的initrd 鏡像檔案    (由第4 步建立)
pxelinux.0 // PXE 引導檔案 (由第2 步建立)
pxelinux.cfg/default // 預設的引導設定檔 (由第5 步建立)
pxelinux.cfg/C0A808## // 定製的引導設定檔 (由第6 步建立)
vmlinuz-2.6.32-431.el6.x86_64 // 用於引導的核心檔案 (由第3 步建立)

 

 

 

 

 

 

 

• 配置DHCP服務

 

1. 安裝DHCP 服務軟體包

yum install dhcp

 

2. 編輯設定檔/etc/dhcp/dhcpd.conf

 

# dhcpd.conf 部分參數說明:# default-lease-time      // 指定確認租賃時間長度,單位為秒,-1 表示無限制# max-lease-time          // 指定最大租賃時間長度# authritative            // 拒絕不正確的IP 位址的要求# subnet netmask {}       // 設定dhcp 地區# range                   // 提供動態分配IP 的範圍;若所有工作站都是綁定的固定IP,可刪除此配置# option routers          // 設定網關/路由器地址,多個地址用逗號隔開;若不想讓用戶端上網,可刪除此配置# domain-name-servers     // 設定DNS,若不想讓用戶端上網,可刪除此配置;多個地址用逗號隔開# next-server             // 告知工作站TFTP 伺服器的地址,TFTP 服務提供啟動引導(注意:“系統伺服器B”設定成192.168.8.9)# filename                // 告知工作站PXE 引導程式名# host XXX {}             // 此處是根據工作站的MAC 位址綁定固定的IP 位址,前提是知道MAC 位址# hardware ethernet       // 工作站的MAC 位址,一定要小寫# fixed-address           // 綁定固定的IP 位址,和range 的不會有衝突,優先以它為主# 配置內容如下:ddns-update-style none;ignore client-updates;default-lease-time -1;max-lease-time -1;authritative;subnet 192.168.8.0 netmask 255.255.255.0 {range 192.168.8.100 192.168.8.200;option routers 192.168.8.254;option domain-name-servers 114.114.114.114,202.96.209.5;next-server 192.168.8.8;filename "pxelinux.0";host WS100 {    hardware ethernet 12:34:56:78:ab:cd;    fixed-address 192.168.8.100;    }host WS101 {    hardware ethernet 12:34:56:90:ab:00;    fixed-address 192.168.8.101;    }}

 

3. 重啟DHCP服務,且將DHCP服務設定成開機自啟

service dhcpd restartchkconfig dhcpd onchkconfig |grep dhcpd

 

 

 

• 配置TFTP服務

 

1. 安裝TFTP 服務軟體包

yum install tftp-server

 

2.  編輯配置/etc/xinetd.d/tftp,只需更改如下2 處:

# and to start the installation process for some operating systems.service tftp{  ...... ........  server_args = -s /nodiskos/tftpboot             // 改成開機檔案的存放目錄  Disable = no                                    // 將yes 改成no,以啟用此服務  ...... ........}

 

3. TFTP 服務是通過xinetd 工具管理的,因此需要通過xinetd 啟動、停止、重啟等

service xinetd restartchkconfig xinetd onchkconfig |grep xinetd

 

 

 

• 配置NFS服務

 

1. 安裝NFS 服務軟體包

yum install nfs-utils rpcbind

 

2. 編輯設定檔/etc/exports,添加如下內容:

# 這一行是配置預設的工作站系統目錄
/nodiskos/workstation  192.168.8.0/24(rw,async,no_root_squash)
# 以下部分是為工作站發布獨立的系統目錄/nodiskos/WS100      192.168.8.100(rw,async,no_root_squash)/nodiskos/WS101      192.168.8.101(rw,async,no_root_squash)/nodiskos/WS102      192.168.8.102(rw,async,no_root_squash)/nodiskos/WS103      192.168.8.103(rw,async,no_root_squash)/nodiskos/WS104      192.168.8.104(rw,async,no_root_squash)......           ......

 

3. 若獨立的工作站數量大,可用如下shell 指令碼進行大量新增

#!/bin/bash
echo ‘/nodiskos/workstation 192.168.8.0/24(rw,async,no_root_squash)‘>/etc/exportsfor i in $(seq -w 100 110)do sed -i "\$a \/nodiskos\/WS$i 192.168.8.$i(rw,async,no_root_squash)" /etc/exportsdonecat /etc/exports

 

4. 重啟NFS服務,且將NFS服務設定成開機自啟

service nfs restartchkconfig nfs onchkconfig |grep nfs

 

5. 至此,所有配置都已完成了。最後檢查下DHCP、TFTP、NFS這3個服務是否都已啟動,是否都已設定成開機自啟

service dhcpd statusservice xinetd statusservice nfs statuschkconfig |grep dhcpdchkconfig |grep xinetdchkconfig |grep nfs

 

6. 最後的最後,將所有PXE用戶端的啟動項設定成首選網卡啟動,然後就啟動PXE用戶端了!!!

 

 

 

RHEL/CentOS PXE無盤工作站

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.