# pxe服務器
pxe:(preboot execute environment,預啓動執行環境)。是inter公司推出的一款經過網絡來引導操做系統的協議。普遍應用於網吧無盤系統。只須要將無盤服務器維護好,就能保證網絡中的無盤工做站(客戶機能正常運行。)
pxe本講目標
用centos系統部署一臺pxe服務器,實現經過pxe網絡來給pxe客戶機手動或自動安裝centos7操做系統。
pxe服務器須要的支撐軟件:DHCP、TFTP、syslinux(提供pxe引導程序文件pxelinux.0)、文件共享(nfs、ftp、http、samba)等linux
pxe服務器和客戶機的工做過程: 1.pxe客戶機發出DHCP請求,向服務器申請ip地址。 2.DHCP服務器響應PXE客戶機的請求,自動從ip地址池中分配一個ip地址給pxe客戶機,而且告知pxe客戶機TFTP(簡單文件傳輸協議)服務器的ip地址和pxe引導程序文件pxelinux.0。 3.pxe客戶機向TFTP服務器發起獲取pxelinux.0引導程序文件的請求。 4.TFTP服務器響應PXE客戶機的請求,將其共享的pxelinux.0文件傳輸給pxe客戶機。 5.pxe客戶機經過網絡來啓動到系統安裝主頁面。 6.pxe客戶機向文件共享服務器發起獲取centos或window系統安裝的請求。 7.文件共享服務器進去到安裝提示嚮導頁面,將共享的系統安裝文件傳輸給pxe客戶機。 8.pxe客戶機進入到安裝提示嚮導界面,用戶須要手動來完成系統的安裝。
pxe中各服務器軟件否功能:
DHCP:用來給pxe客戶機自動分配TCP/IP設置(包括IP地址、子網掩碼、網關、DNS等)。告知pxe客戶機「TFTP服務器的IP地址和pxe啓動文件名」。
TFTP:是一個迷你的FTP共享協議軟件,用來給pxe客戶機提供網絡啓動的引導程序文件pxelinux.0。
syslinux:用來提供pxelinux.0網絡引導程序文件。
文件共享:能夠是vsftpf、nfs、samba、http等軟件來實現文件共享。用來給pxe客戶機提供系統安裝文件。數據庫
PXE服務器的部署:
關閉selinux和防火牆:
setenforce 0 && getenforce
systemctl stop firewalld && systemctl disable firewalldvim
部署DHCP服務器
1.查軟件是否安裝:rpm -q dhcp
2.安裝dhcp服務器軟件:yum -y install dhcp
3.查配置文件列表:rpm -qc dhcpcentos
/etc/dhcp/dhcpd.conf **是dhcp服務器的主配置文件(實現DHCP的ipv4功能)
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd是dhcp服務器的輔助配置文件(用於多網卡環境)
/var/lib/dhcpd/dhcpd.leases是dhcp服務器的租約文件(記錄客戶機從服務器獲取的IP地址信息)
/var/lib/dhcpd/dhcpd6.leases服務器
4.編輯dhcpd.conf配置文件
rpm -qc dhcp
cat /etc/dhcp/dhcpd.conf
能夠看到網絡
cat /usr/share/doc/dhcp/dhcpd.conf.example
把這幾行貼到下面的主配置文件中
vim /etc/dhcpd/dhcpd.conf
改爲去下所示
最後2行是本身加上去的
5.啓動dhcp服務容許服務開機自動啓動。
systemctl restart dhcpd
systemctl enable dhcpd
systemctl status dhcpd
netstat -atunlp |grep :67查67號端口的網絡進程序app
pxe客戶機測試
1.在VMware虛擬機軟件中新建一臺名稱爲PXE的centos7_64位系統的虛擬機。
2.給pxe虛擬機的內存設置爲1324M(內存小了會報錯)
3.給PXE虛擬機建立一個名稱爲NOS的快照。
4.啓動pxe虛擬機,會發現它自動獲到了ip地址,並卡在看下圖的界面。
next-server 在哪臺服務器上作的就寫哪一個ip地址ide
部署tftp-server服務器
1.查軟件是否安裝:rpm -q tftp-server
2.安裝tftp-srever服務器軟件yum -y isntall tftp-server
3.查配置文件列表:rpm -qc tftp-server
/etc/xinetd.d/tftp
4.編輯tftp配置文件
cat /etc/xinetd.d/tftp測試
將disable的yes改爲no就好了ui
5.啓動tftp服務,容許服務開機自動啓動。
systemctl restart tftp
systemctl enable tftp
netstat -atunlp |grep :69 查網絡進程中關於69號端口關鍵字的信息
6.安裝提供pxelinux.0的syslinux軟件,共享pxe引導程序文件。
rpm -q syslinux mlocate
yum -y install syslinux mlocate
updatedb 更新locate文件查找數據庫
locate pxelinux.0 查找pxelinux.0文件
能夠看到有2個文件
共享指定的文件到/var/lib/tftpboot目錄中
cd /var/lib/tftpboot 切換到tftp-server的默認共享目錄
cp -v /usr/share/syslinux/pxelinux.0 ./複製指定的文件到當前目錄中
df -hT查看磁盤空間使用狀態
cp -v /dvd/isolinux/* ./複製光盤掛載點目錄中指定的文件到當前目錄中
mkdir -v pxelinux.cfg在當前目錄中建立pxelinux.cfg目錄
cp -v isolinux.cfg pxelinux.cfg/default 複製指定的文件到指定目錄中並更名爲default
/var/lib/tftpboot tftp服務的默認共享目錄
├── boot.cat
├── boot.msg
├── grub.conf
├── initrd.img linux系統鏡像文件(即迷你版的linux系統)
├── isolinux.bin
├── isolinux.cfg
├── memtest
├── pxelinux.0 pxe的引導程序文件
├── pxelinux.cfg pxe啓動菜單的配置文件目錄
│ └── default PXE啓動菜單(即centos的安裝界面菜單)
├── splash.png 安裝界面的黑色背景圖片
├── TRANS.TBL
├── vesamenu.c32 pxe的32位菜單管理程序
└── vmlinuz pxe啓動的linux內核文件
pxe客戶機測試:
重啓pxe虛擬機,會發現它自動獲到了引導程序文件,並卡在了下圖的界面
文件共享服務器部署
可用軟件:vsftpd、nfs、samba、httpd
以vsftpd爲列來部署: 1.查軟件是否已安裝:rpm -q vsftpd 2.安裝tftp-server服務器軟件:yum -y install vsftpd 3.查配置文件列表:rpm -qc vsftpd 4.啓動vsftpd服務,容許開機自動啓動服務
systemctl restart vsftpd
systemctl enable vsftpd
systemctl status vsftpd
netstat -atunlp |grep :21 或lsof -i :21
5.共享centos的系統鏡像到/var/ftp/dvd
mkdir -v /var/ftp/dvd
mount /dev/sr0 /var/ftp/dvd最好用自動掛載
6.修改/var/lib/tftpboot/pxelinux.cfg/default啓動菜單文件內容 vim /var/lib/tftpboot/pxelinux.cfg/default 修改內容以下 61 label linux
62 menu label ^Install CentOS 7
63 kernel vmlinuz
64 append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet 找到此行
修改64行內容爲append initrd=initrd.img method=ftp://192.168.11.11/dvd
重啓服務 systemctl restart tftp
在第一個菜單界面上直接按回車鍵,等待安裝程序的啓動,知道進到下圖所示的界面
採用kickstart自動應答程序來實現系統的自動化安裝(即靜默安裝)
方法:使用kickstart程序或vim來建立ks.cfg自動應答文件。用文件共享服務來共享ks.cfg自動應答文件。
技巧:linux系統在安裝時會自動生成一個anaconda-ks.cfg配置文件,文件位於/root目錄中,anaconda-ks.cfg裏面記錄的就是用戶在安裝系統時所作的操做(選擇語言環境、硬盤分區、安裝的軟件包、網卡IP設置、主機名、root用戶密碼、新建普通用戶等)。
1.修改/root/anaconda-ks.cfg權限爲644,複製/root/anaconda-ks.cfg到/var/ftp/ks目錄中。
cd
chmod -v 644 anaconda-ks.cfg
mkdir -v /var/ftp/ks
cp -v anaconda-ks.cfg /var/ftp/ks/ks.cfg
2.修改/var/lib/tftpboot/pxelinux.cfg/default啓動菜單文件
vim /var/lib/tftpboot/pxelinux.cfg/default
61 label linux 標籤爲linux
62 menu label ^Install CentOS 7 菜單標籤爲Install CentOS 7
63 menu default 添加此行,設置爲默認菜單
64 kernel vmlinuz 指定系統內核文件名爲vmlinuz文件
修改64行內容爲append initrd=initrd.img method=ftp://192.168.11.11/dvd ks=ftp://192.168.11.11/ks/ks.cfg
66 #menu default 用#號註釋掉此行
說明:ks=是指定ks.cfg自動安裝應答文件的功能選項。
重啓服務。