1. 程式人生 > >網絡啟動一:之IPXE:企業應用

網絡啟動一:之IPXE:企業應用

tftp initrd tex itl centos 6 util onf filename http

網絡啟動一:之IPXE:企業應用


前幾天寫了IPXE簡單應用內容,今天詳細介紹使用IPXE在企業中的應用,部署Linux系統和Windows系統。


操作步驟:


一、搭建環境

1.1.操作系統:CentOS6.9 Min /CentOS7.4 Min 172.16.30.57

安裝文件存放服務器 http://172.16.30.121 目錄有centos6.9 centos7.3 ubuntu16 eg..

配置菜單服務器地址 http://172.16.30.57/ipxe 或其它服務器地址。

建議與tftp服務器在一起,這樣簡化安裝和配置過程。

安裝過程略


1.2.安裝依賴包

官方指定的依賴包

yum install gcc binutils make perl liblzma mtools mkisofs xz-devel


1.3.官方網站ipxe

http://ipxe.org/download

下載最新版本即可,目前為ipxe-79e81f8.tar.gz


文件下載位置 /usr/local/src


1.4. 解壓並編譯

cd /usr/local/src

tar zxvf ipxe-79e81f8.tar.gz

cd ipxe-79e81f8

編譯:


make

make 不加參數代表編譯所有類型。

待ftp-server 安裝完畢後,復制ipxe-version/bin/undionly.kpxe /var/lib/tftpboot/undionly.kpxe


1.5 安裝 tftp+dhcp+xinetd+httpd

yum install dhcp tftp-server xinetd


二、配置環境

2.1.修改tftp配置。

sed -i '/disable/s/yes/no/' /etc/xinetd.d/tftp


2.2 修改dhcpd配置

--------------------------

# DHCP Server Configuration file.

# see /usr/share/doc/dhcp*/dhcpd.conf.sample

# see 'man 5 dhcpd.conf'

#

#option space ipxe;

option client-arch code 93 = unsigned integer 16;


default-lease-time 600;

max-lease-time 7200;

#ddns-update-style interim;


subnet 172.16.30.0 netmask 255.255.255.0 {

range 172.16.30.60 172.16.30.70;

option routers 172.16.30.57;


class "pxeclients" {

match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";


next-server 172.16.30.57;

if option client-arch != 00:00 {

filename "ipxe/ipxe.efi";

} else {

filename "ipxe/undionly.kpxe";

}

}

server-name "TestIPXE";

}

-----------------------------------

以上為dhcp配置


2.3 修改httpd.conf

sed -i 's/#ServerName www.example.com:80/ServerName *:80/g' /etc/httpd/conf/httpd.conf


2.4 配置ipxe目錄

mkdir /var/lib/tftpboot/ipxe

mkdir /var/www/html/ipxe


2.5 定制 undionly.kpxe


說明:默認undionly.kpxe 循環啟動,如果要使用自己的ipxe菜單,則需要定制編譯才可以。


2.5.1.編譯定制文件


cd /usr/local/src/ipxe-79e81f8


touch demo.ipxe


vi demo.ipxe

-----------------------

#!ipxe

dhcp

#此處的地址為菜單的位置,可以為本機也可以為外網地址。

chain http://172.16.30.57/ipxe/ipxe.html

#make bin/undionly.kpxe EMBED=demo.ipxe

-----------------------

make bin/undionly.kpxe EMBED=demo.ipxe


2.5.2.拷貝文件到tftp目錄

cp bin/undionly.kpxe /var/lib/tftpboot/ipxe/


如果要使用UEFI啟動,則需要下載ipxe.efi,測試可以使用,但是慢的無法忍受,所以暫時不推薦。


2.6制作ipxe菜單

費了幾番功夫研究菜單事宜,最終使用以下配置成功。


vi /var/lib/tftpboot/ipxe.html


------------

#!ipxe

#自定義變量

set dirpath http://172.16.30.121

set kspath ${dirpath}/kickstarts


#定義菜單

#clear custom_choice

#菜單名稱

menu My First Menu Test

#菜單明細

item --gap Linux series

item centos7 --CentOS 7.4

item centos6 --CentOS 6.9

item --gap Windows series

item win10x64 --Windows 10 x64

item win10x32 --Windows 10 x32

item HardDisk --From hard disk

item custom_exit --Exit

#定義選擇參數

choose --default custom_exit --timeout 30000 custom_choice || goto custom_exit

echo ${cls}

goto ${custom_choice}

goto custom_exit


#引導Label

:centos7

kernel ${dirpath}/centos7.4/isolinux/vmlinuz ip=dhcp ks=${kspath}/Centos-7.x-min.cfg repo=${dirpath}/centos7.4

initrd ${dirpath}/centos7.4/isolinux/initrd.img

boot || goto custom_exit


:centos6

#略...


:win10x64

kernel ${dirpath}/win10/memdisk raw iso

initrd ${dirpath}/win10/W10X32_CN_PE.iso

boot || goto custom_exit


:win10x32

#略...


:custom_exit

chain utils.ipxe

exit


------------

###註意 ###

以上配置可以自動安裝,如果不熟悉或沒有對應kickstarts文件,請在kernel後面把參數去掉,那樣的話就是手動安裝系統了,

kickstarts不在此討論。





ln -s /var/lib/tftpboot/ipxe/ipxe.html /var/www/html/ipxe/ipxe.html


[root@localhost tftpboot]# tree

.

└── ipxe

├── ipxe.html

└── undionly.kpxe



3.防火墻放行

添加53、69、80等端口,

步驟略...


-A INPUT -s 172.16.10.0/16 -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT


如有其它安全設置,請依次放行.



配置基本完成,


啟動服務

centos6

service xinetd start

service dhcpd start

service httpd start


centos7

systemctl start xinetd

systemctl start dhcpd

systemctl start httpd


開機啟動

centos6

chkconfig --level 345 xinetd on

... ...


centos7

systemctl enable xinetd

... ...


客戶端開機pxe引導

技術分享圖片

技術分享圖片


技術分享圖片




技術分享圖片


技術分享圖片





網絡啟動一:之IPXE:企業應用