本節索引:
一、PEX簡介
二、實驗:模擬搭建DHCP服務器
三、實驗:模擬搭建tftp服務器
四、實驗:實現CentOS7的PXE安裝
五、實驗:在CentOS7實現PXE安裝CentOS6,7雙系統
一、PEX簡介:
PXE(Preboot Execution Environment):預啟動執行環境
PXE是由Intel設計的協議,它可以使計算機通過網絡而不是從本地硬盤、光驅等設備啟動。
基于Client/Server的網絡模式,支持遠程主機通過網絡從遠端服務器下載
映像,并由此支持通過網絡啟動操作系統
PXE可以引導和安裝Windows,linux等多種操作系統
PXE的工作原理:
1)Client向PXE Server上的DHCP發送IP地址請求消息,DHCP檢測Client是否合法(主要是檢
測Client的網卡MAC地址),如果合法則返回Client的IP地址,同時將啟動文件pxelinux.0的
位置信息一并傳送給Client
2)Client向PXE Server上的TFTP發送獲取pxelinux.0請求消息,TFTP接收到消息之后再向Client
發送pxelinux.0大小信息,試探Client是否滿意,當TFTP收到Client發回的同意大小信息之后,
正式向Client發送pxelinux.0
3)Client執行接收到的pxelinux.0文件
4)Client向TFTP Server發送針對本機的配置信息文件(在TFTP 服務的pxelinux.cfg目錄下),
TFTP將配置文件發回Client,繼而Client根據配置文件執行后續操作。
5)Client向TFTP發送Linux內核請求信息,TFTP接收到消息之后將內核文件發送給Client
6)Client向TFTP發送根文件請求信息,TFTP接收到消息之后返回Linux根文件系統
7)Client啟動Linux內核
8)Client下載安裝源文件,讀取自動化安裝腳本
由此可見,要想實現PXE安裝系統,首先要先搭建DHCP以及tftp服務器,我們接下來先介紹如何搭
建一臺DHCP以及tftp服務器。
二、實驗:模擬搭建DHCP服務器
前期準備:準備一臺CentOS7虛擬機作為DHCP服務器;網卡設為僅主機模式,設置固定IP地址,
關閉虛擬機的DHCP服務
1.關閉iptables,selinux服務
2.安裝DHCP服務包
yum install dhcp
3.嘗試啟動dhcp服務
systemctl start dhcpd.service
我們發現dhcpd服務啟動失敗,原因是未配置dhcp.conf文件
4.系統自帶的dhcp.conf是空文件,我們找到安裝包自帶的example進行修改
rpm –ql dhcp | grep example
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example?? /etc/dhcp/dhcp.conf
5.修改dhcp配置文件
vim dhcp.conf
其中全局語句塊和subnet語句塊均可使配置生效,subnet語句塊優先級高于全局語句塊
全局語句塊:
# option definitions common to all supported networks…?
option domaim-name “wxlinux.com” ????????????????? 指定獲取主機域后綴
option domain-name-servers 114.114.114.114,8.8.8.8????? ????? 指定DNS,可選
default-least-time? 86400????????????????????????????? ??? 結合生產環境,ip越充足,租期越大越好
max-lease-time? 100000???????????????????????????????????????? 最大租期時間
subnet語句塊:
# This is a very basic subnet declaration.
subnet 192.168.30.0 netmask 255.255.255.0 {
??????? range 192.168.30.10? 192.168.30.100;??????????????? 指定ip地址范圍
???????? option router 192.168.30.1???????????????????? ??? 指定網關
}
6.再次嘗試啟動dhcpd服務,并設置開機自啟動
systemctl start dhcpd.service
systemctl enable dhcpd.service
發現這次沒有報錯,dhcpd服務順利啟動
7.切換到另外一臺CentOS6虛擬機
我們看到現在的ip地址為:192.168.30.158
執行命令重新獲取ip地址:
dhclient –d
新獲取的地址為192.168.30.11,證明dhcp服務已搭建成功
利用systemctl status dhcpd 命令可觀察dhcp分發地址的全過程
三、實驗:模擬搭建tftp服務器
前期準備:關閉服務器端,客戶端的SELinux,以及防火墻
tftp服務器端:CentOS7:192.168.30.10
tftp客戶端:CentOS6:192.168.30.11
tftp服務器端操作:
1.安裝tftp服務
yum install tftp
yum install tftp-server
2.開啟服務
CentOS6:
chkconfig tfcp on
service xinted restart
chkconfig tfcp enable
CentOS7:
systemctl start tftp.socket
systemctl enable tftp.socket
3測試tftp服務
拷貝mbr7.bak文件到tftp目錄下
cp mbr7.bak /var/lib/tftpboot/
客戶端:
tftp 192.168.30.10
get menu.c23
文件通過tftp傳輸成功
至此,dhcp及tfcp已在CentOS7上搭建完成,下面來實驗用PEX安裝CentOS系統
四、實驗:實現CentOS7的PXE安裝
前期準備:關閉SELinux策略,firewall防火墻
事先準備好應答文件ks7_mini.cfg,ks7_desktop.cfg
服務器端:CentOS7:192.168.30.10
1 安裝必要包,并開啟httpd服務
yum install dhcp tftp-server httpd syslinux
systemctl enable dhcpd httpd tftp.socket
systemctl start httpd
2.準備yum源
mkdir /var/www/html/centos/7? -pv
添加開機自動掛載光盤
vim /etc/fstab
/dev/sr0???? /var/www/html/centos/7? iso9660 defaults 0 0
掛載磁盤
mount dev/sr0?? /var/www/html/centos/7?
重新讀取磁盤掛載
mount -a
2.制作ks.cfg文件
mkdir /var/www/html/ksdir/7 ?-pv
cp /root/ ks7_desktop.cfg? /var/www/html/ksdir/7/ks7_desktop.cfg
cp /root/ ks7_mini.cfg? /var/www/html/ksdir/7/ks7_mini.cfg
chmod +r /var/www/html/ksdir/7/ks7_desktop.cfg
瀏覽器確認ks7.cfg能正常訪問
3.修改ks.cfg文件
#Use CDROM installation media
url –url=http://192.168.30.7/centos/7
#Use graphical install
text
#網卡
onboot=on
我們還可以在此添加ssh基于key的認證,使得新系統安裝后可直接ssh連接
添加ssh基于key驗證:
%post
mkdir /root/.ssh
cat > /root/.ssh/authorized_keys << EOF
ssh-rsa AAABBB…(服務器自授權公鑰)
EOF
4.配置dhcp服務
subnet 192.168.30.0 netmask 255.255.255.0 {
??????? range 192.168.30.10 192.168.30.100;
??????? option routers 192.168.30.254;
??????? option domain-name-servers 8.8.8.8;
??????? next-server 192.168.30.7;
??????? filename “pxelinux.0”;
}
syetemctl dhcpd start
5.準備PXE相關文件
cd /var/lib/tftpboot/
mkdir pxelinux.cfg/
cp /usr/share/syslinux/pxelinux.0? /var/lib/tftpboot
rpm -ql syslinux|grep menu.c32
cp /usr/share/syslinux/menu.c32? /var/lib/tftpboot
cp /misc/cd/isolinux/{vmlinuz,initrd.img}? /var/lib/tftpboot
cp /misc/cd/isolinux/isolinux.cfg? /var/lib/tftpboot/pxelinux.cfg/default
最終目錄樹如下:
6.制作菜單
vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
刪掉背景,修改title等
menu title Auto Install System
CentOS7:
見圖
設置啟動菜單:
menu title? Auto Install CentOS
label desktop
? menu label Install ^Desktop CentOS 7
? kernel vmlinuz
? append initrd=initrd.img ks=http://192.168.30.7/ksdir/7/ks7_desktop.cfg
label mini
? menu label Install ^Mini CentOS 7
? kernel vmlinuz
? append initrd=initrd.img ks=http://192.168.30.7/ksdir/7/ks7_mini.cfg
label local
? menu default
? menu label Boot from ^local drive
? localboot 0xffff
menu end
7.測試安裝,新開一臺虛擬機:
網卡設置為僅主機,正常啟動將出現安裝界面
我們選擇Desktop安裝
五、實驗:在CentOS7實現PXE安裝CentOS6,7雙系統
前期準備:關閉SELinux安全策略,關閉防火墻;
事先準備好應答文件ks6_mini.cfg,ks7_desktop.cfg
服務器:CentOS7:192.168.30.10
1 安裝必要服務包
yum install dhcp tftp-server httpd syslinux
systemctl enable dhcpd httpd tftp.socket
systemctl start httpd
2 準備YUM源
mkdir /var/www/html/centos/{6,7}/ -pv
vim /etc/fstab 加下面行
/dev/sr0???????? /var/www/html/centos/6??? iso9660 defaults??????? 0 0
/dev/sr1???????? /var/www/html/centos/7??? iso9660 defaults??????? 0 0
mount -a
3 準備ks文件
mkdir /var/www/html/ksdir/{6,7} -pv
cp /root/ks6_mini.cfg? /var/www/html/ksdir/7/ks6_mini.cfg
cp /root/ks7_desktop.cfg? /var/www/html/ksdir/7/ks7_desktop.cfg
chmod +r /var/www/html/ksdir/7/ks7_desktop.cfg
[root@centos7 tftpboot]#tree /var/www/html/ksdir/
/var/www/html/ksdir/
├── 6
│?? └── ks6_mini.cfg
└── 7
??? └── ks7_desktop.cfg
最好確認下應答文件是否可以httpd正常訪問
4 配置dhcp服務
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
[root@centos7 tftpboot]#cat /etc/dhcp/dhcpd.conf
option domain-name “magedu.org”;
option domain-name-servers 114.114.114.114,1.1.1.1;
option routers 192.168.30.200;
default-lease-time 86400;
max-lease-time 100000;
subnet 192.168.30.0 netmask 255.255.255.0 {
??????? range 192.168.30.10 192.168.30.100;
??????? option routers 192.168.30.254;
??????? option domain-name-servers 8.8.8.8;
??????? next-server 192.168.30.17;
??????? filename “pxelinux.0”;
}
systemctl start dhcpd
5 準備PXE相關文件
rpm -ql syslinux
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
mkdir /var/lib/tftpboot/centos{6,7}
cp? /var/www/html/centos/7/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos7/
cp? /var/www/html/centos/6/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos6/
cp /var/www/html/centos/7/isolinux/isolinux.cfg? /var/lib/tftpboot/pxelinux.cfg/default
最終目錄結構如下:
6.修改啟動菜單
vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 600
menu title AUTO Install CentOS6 or 7
label centos7
? menu label ^Install? Desktop CentOS? 7
? kernel centos7/vmlinuz
? append initrd=centos7/initrd.img ks=http://192.168.30.17/ksdir/ks7_desktop.cfg
label centos6
? menu label install ^Mini CentOS 6
? menu default
? kernel centos6/vmlinuz
? append initrd=centos6/initrd.img ks=http://192.168.30.17/ksdir/ks6_mini.cfg
label local
? menu label Boot from ^local drive
? localboot 0xffff
menu end
6 客戶端測試安裝
一般能到達安裝包界面就證明安裝沒問題了
登錄成功:
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/99373