PXE自動化安裝系統相關實驗

PXE(Preboot Execution Environment):預啟動執行環境,PXE是由Intel設計的協議,它可以使計算機通過網絡而不是從本地硬盤、光驅等設備啟動。本節將帶你學習dhcp,tftp服務器的搭建,以及使用PXE安裝系統

本節索引:

一、PEX簡介

二、實驗:模擬搭建DHCP服務器

三、實驗:模擬搭建tftp服務器

四、實驗:實現CentOS7的PXE安裝

五、實驗:在CentOS7實現PXE安裝CentOS6,7雙系統

08LT7RC%U6KC4FUOH`Z]BGK

一、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服務

關閉dhcp服務

1.關閉iptables,selinux服務

2.安裝DHCP服務包

yum install dhcp

3.嘗試啟動dhcp服務

systemctl start dhcpd.service

我們發現dhcpd服務啟動失敗,原因是未配置dhcp.conf文件

嘗試啟動dhcp失敗

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???????????????????? ??? 指定網關

}

修改dhcp.conf

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

安裝yum

2.開啟服務

CentOS6:

chkconfig tfcp on

service xinted restart

chkconfig tfcp enable

 

CentOS7:

systemctl start tftp.socket

systemctl enable tftp.socket

開啟tftp.socket

3測試tftp服務

拷貝mbr7.bak文件到tftp目錄下

cp mbr7.bak /var/lib/tftpboot/

 

客戶端:

tftp 192.168.30.10

get menu.c23

文件通過tftp傳輸成功

1%Y5[PKHF[}VCZB9PHN74UB

 

至此,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

 

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修改ks

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

配置dhcp

 

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

最終目錄樹如下:

5目錄樹

6.制作菜單

vim /var/lib/tftpboot/pxelinux.cfg/default

default menu.c32

刪掉背景,修改title等

menu title Auto Install System

CentOS7:

見圖

6修改目錄

設置啟動菜單:

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.修改菜單

 

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正常訪問

確認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

dhcp配置

 

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

修改default

 

6 客戶端測試安裝

950`G(0J]]EL4JLFN_I(UP6

一般能到達安裝包界面就證明安裝沒問題了

安裝包

登錄成功:

登錄成功

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/99373

(1)
wangxczwangxcz
上一篇 2018-05-26
下一篇 2018-05-26

相關推薦

  • tomcat2 memarche

    會話集群復制

    2018-07-18
  • 第四周作業

    第四周作業
    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。
    2、編輯/etc/group文件,添加組hadoop。
    3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。
    4、復制/etc/skel目錄為/home/hadoop,要求修改hadoop目錄的屬組和其它用戶沒有任何訪問權限。
    5、修改/home/hadoop目錄及其內部所有文件的屬主為hadoop,屬組為hadoop。
    6、顯示/proc/meminfo文件中以大寫或小寫S開頭的行;用兩種方式;
    7、顯示/etc/passwd文件中其默認shell為非/sbin/nologin的用戶;
    8、顯示/etc/passwd文件中其默認shell為/bin/bash的用戶;
    9、找出/etc/passwd文件中的一位數或兩位數;
    10、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;
    11、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;
    12、打出netstat -tan命令執行結果中以‘LISTEN’,后或跟空白字符結尾的行;
    13、添加用戶bash, testbash, basher, nologin (此一個用戶的shell為/sbin/nologin),而后找出當前系統上其用戶名和默認shell相同的用戶的信息;

    2018-06-07
  • shell回顧

    測試基礎知識

    2018-05-17
  • sed的用法

    sed是一種流編輯器,它一次處理一行內容。 處理時,把當前處理的行存儲在臨時緩沖區(pattern space),同時輸出到屏幕,接著用sed命令處理緩沖區中的內容,接著讀取下一行,這樣不斷重復,直到文件末尾。 用法: sed -[options] [操作] inputfile -n:不輸出模式空間內容到屏幕,即不自動打印 -e: 多點編輯 -f:/PATH…

    2018-04-22
  • 我的第一篇博客!

    大家好,我在178linux開博文了,歡迎大家斧正!

    Linux筆記 2018-05-02
欧美性久久久久