背景
PXE ??PXE(preboot execute environment,預(yù)啟動(dòng)執(zhí)行環(huán)境)是由Intel公司開發(fā)的最新技術(shù),工作于Client/Server的網(wǎng)絡(luò)模式,支持工作站通過網(wǎng)絡(luò)從遠(yuǎn)端服務(wù)器下載映像,并由此支持通過網(wǎng)絡(luò)啟動(dòng)操作系統(tǒng),在啟動(dòng)過程中,終端要求服務(wù)器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協(xié)議下載一個(gè)啟動(dòng)軟件包到本機(jī)內(nèi)存中執(zhí)行,由這個(gè)啟動(dòng)軟件包完成終端(客戶端)基本軟件設(shè)置,從而引導(dǎo)預(yù)先安裝在服務(wù)器中的終端操作系統(tǒng)。 ?? PXE工作原理
實(shí)驗(yàn)流程
前提
環(huán)境搭建 ??三臺(tái)虛擬機(jī),一臺(tái)預(yù)裝centos系統(tǒng),另外兩臺(tái)創(chuàng)建空機(jī)器就好(安裝centos7的機(jī)器最好配置1.5g以上內(nèi)存),selinux關(guān)閉,iptables規(guī)則清空。 軟件需求 ??system-config-kickstart 圖形化的工具,生成kickstart文件(要求圖形界面centos6和7的有一定區(qū)別,最好使用兩臺(tái)有圖形的機(jī)器去生成kickstart文件) ??dhcp 搭建dhcp服務(wù)器給空白機(jī)器提供ip地址以便后續(xù)的系統(tǒng)部署 ??tftp 提供基礎(chǔ)系統(tǒng)引導(dǎo)文件 ??httpd或者ftp提供軟件包和kickstart文件的存儲(chǔ)和支持網(wǎng)絡(luò)訪問 ??syslinux 提供pxelinux.0文件 kickstart文件生成 ??首先安裝kickstart圖形化工具
yum install system-config-kickstart -y
#我這里已經(jīng)裝過了就不再重復(fù)安裝了
??安裝完成后在終端輸入
system-config-kickstart
??6和7這個(gè)程序的界面基本相同。 ??因?yàn)樘峁┝酥形?,因此就不在過多截圖和說明。跟著指示一步一步選擇即可,全部選擇完成后可以選擇“文件”進(jìn)行保存。
kickstart文件的結(jié)構(gòu)分析 ??centos6
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade 指明是安裝系統(tǒng)還是升級系統(tǒng)
install
# Use network installation 使用網(wǎng)絡(luò)安裝系統(tǒng),指明包安裝路徑
url --url="http://192.168.99.150/centos/6"
# Root password 設(shè)定root密碼
rootpw --iscrypted $1$83EH4TBr$Q.b9cbOc79IC4aXYbCO3A0
# System authorization information 密鑰加密算法啟用shadow文件
auth --useshadow --passalgo=sha512
# Use text mode install 使用文本模式或者圖形模式安裝系統(tǒng)
text
# System keyboard 鍵盤設(shè)定
keyboard us
# System language 語言設(shè)定
lang en_US
# SELinux configuration selinux是否關(guān)閉
selinux --disabled
# Do not configure the X Window System 是否安裝圖形界面
skipx
# Installation logging level 日志級別
logging --level=info
# Reboot after installation 聲明安裝完成后重啟系統(tǒng)
reboot
# System timezone 設(shè)置時(shí)區(qū)(可以改成亞洲上海)
timezone Africa/Abidjan
# System bootloader configuration 設(shè)定BootLoader
bootloader --location=mbr
# Clear the Master Boot Record 清除mbr記錄
zerombr
# Partition clearing information 清除全部分區(qū)
clearpart --all --initlabel
# Disk partitioning information 分區(qū)設(shè)定
part /boot --fstype="ext4" --size=200
part / --fstype="ext4" --size=16000
part swap --fstype="swap" --grow --size=2048
%packages 安裝的包設(shè)定(這里僅僅最小化安裝)
@core
?? ??centos7
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$/oxkHD8i$x9g6m.ghBq2L3Vz6ENY7i0
# Use network installation
url --url="http://192.168.99.150/centos/7"
# System language
lang en_US
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
text
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Firewall configuration
firewall --disabled
# Reboot after installation
reboot
# System timezone
timezone Africa/Abidjan
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=200
part / --fstype="xfs" --size=16000
part swap --fstype="swap" --grow --size=2048
%packages 安裝包選項(xiàng)最小化安裝 7在選擇完包之后要添加%end表示結(jié)束
@^minimal
%end
服務(wù)搭建
DHCP構(gòu)建
??1.安裝dhcp
yum install dhcp -y
??2.創(chuàng)建dhcp地址段配置文件,安裝dhcp之后會(huì)默認(rèn)生成示例文件,只要對示例文件進(jìn)行簡單修改即可使用。
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
??3.修改文件,添加以下字段
subnet 192.168.99.0 netmask 255.255.255.0 { #設(shè)定分配的子網(wǎng)和掩碼
range 192.168.99.160 192.168.99.200; #設(shè)定地址范圍
option subnet-mask 255.255.255.0; #設(shè)定掩碼
option routers 192.168.99.150; #指定網(wǎng)關(guān)地址
default-lease-time 86400; #設(shè)定租約期,不設(shè)定話默認(rèn)是全局時(shí)間
max-lease-time 864000; #最大租約期,不設(shè)定繼承全局
next-server 192.168.99.150; #指定下一個(gè)服務(wù)器地址,用來指明提供ftp或者h(yuǎn)ttp服務(wù)的地址
filename "pxelinux.0";
}
??4.啟動(dòng)服務(wù)并且設(shè)定開機(jī)啟動(dòng)
chkconfig dhcpd on
service dhcpd start
#centos 7 使用systemctl enable dhcpd systemctl start dhcpd
地址分配記錄,新配置的應(yīng)該不會(huì)有記錄這里是實(shí)驗(yàn)完成后的記錄。
/var/lib/dhcpd/dhcpd.leases
配置httpd服務(wù)提供包的安裝和kickstart文件
??1.通過yum方式安裝httpd并且開機(jī)啟動(dòng)
yum install httpd -y
chkconfig httpd on
#centos7
#systemctl enable httpd
??2.創(chuàng)建相應(yīng)目錄掛載光盤文件(使用兩個(gè)光驅(qū)掛載以便節(jié)省磁盤空間)以及存放ks文件。要注意權(quán)限,最好在掛載完成后在宿主機(jī)網(wǎng)頁訪問一下。
mkdir -pv /var/www/html/centos/{6,7,ks}
mount /dev/sr0 /var/www/html/centos/6/
mount /dev/sr1 /var/www/html/centos/7/
mv centos6.cfg centos7.cfg /var/www/html/ks/ #之前準(zhǔn)備好的ks文件均為最小化安裝
配置tftp服務(wù)并且準(zhǔn)備啟動(dòng)文件
??1.安裝tftp服務(wù)并且配置開機(jī)啟動(dòng)
yum install tftp-server -y
chkconfig tftp on
chkconfig xinetd on (centos 6 tftp由xinetd管理)
#centos7
# systemctl enable tftp
??2.準(zhǔn)備相關(guān)的啟動(dòng)文件及目錄
mkdir /var/lib/tftpboot/pxelinux.cfg
mkdir -pv /var/lib/tftpboot/centos{6,7}
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /var/www/html/centos/6/isolinux/vesamenu.c32 /var/lib/tftpboot/
cp /var/www/html/centos/6/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos6/
cp /var/www/html/centos/7/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos7/
cp /var/www/html/centos/6/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
??3.修改default菜單文件
#僅僅修改label字段
label linux7
menu label Install centos^7
kernel centos7/vmlinuz #由于是多版本部署所以要指明對應(yīng)的路徑
append initrd=centos7/initrd.img text ks=http://192.168.99.150/centos/ks/centos7.cfg
label linux6
menu label Install centos^6
kernel centos6/vmlinuz
append initrd=centos6/initrd.img text ks=http://192.168.99.150/centos/ks/centos6.cfg
驗(yàn)證
??1.重啟httpd dhcpd xinetd服務(wù)
service httpd restart
service dhcpd restart
service xinetd restart
#centos7使用systemctl命令重啟服務(wù),centos7不再使用xinetd管理tftp服務(wù)
#systemctl restart tftp
??2.驗(yàn)證服務(wù)端口是否正常啟動(dòng)
ss -tunlp
??3.配置3臺(tái)主機(jī)都到vmnat2段
??4.啟動(dòng)2臺(tái)空白虛擬機(jī)分別安裝centos6和centos7
??5.靜靜等待安裝完成 ?? ??centos6
?? ??centos7 .
總結(jié)
實(shí)驗(yàn)進(jìn)行基本順利,感覺對pxe過程的中的坑有了比較詳細(xì)的了解,下篇會(huì)繼續(xù)pxe的進(jìn)階cobbler的配置。
|