PXE服務器介紹及部署
PXE簡介:
PXE:預安裝環境 . 是Intel公司推出的一款通過網絡來引導操作系統的協議 . 廣泛應用於網吧無盤系統 .
實驗目標:
用centos7 系統部署一臺pxe 服務器, 通過PXE網絡來給客戶端實現手動或自動安裝 centos7 操作系統 .
PXE 服務器需要的支撐軟件:
DHCP + TFTP +sys Linux (提供pxe 引導程序文件系統文件pxelinux.0)+ 文件共享(nfs , ftp , http , samba 等) .
工作原理流程:
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或windows系統安裝文件的請求。
7. 文件共享服務響應PXE客戶機的請求,將共享的系統安裝文件傳輸給PXE客戶機。
8. PXE客戶機進入到安裝提示嚮導界面,用戶需要手動來完成系統的操作。
kickstart自動化系統安裝:
在PXE服務器上用vim或kcikstart工具創建一個系統自動安裝的應答文件ks.cfg(自行命名),並用文件共享服務來共享ks.cfg文件。ks.cfg自動應答文件中是記錄的安裝操作步驟。客戶機在進入安裝界面時會自動根據ks.cfg文件中的內容來完成安裝操作。
PXE 服務器部署流程:
關閉selinux 和 防火牆
setenforce 0
systemctl stop firewalld
部署 DHCP 服務器
1. 查看軟件是否安裝 : rpm -q dhcp
2. 安裝DHCP服務器軟件 : yum install -y dhcp
3. 查看文件配置列表 : rpm -qc dhcp (/etc/dhcp/dhcpd.conf 爲 dhcp服務器的主配置文件)
4. 編輯dhcpd.conf 配置文件:
先查看主配置文件 , 再用vim編輯如下圖紅色標記文件
找到其中例子如下圖所示
將其複製到主配置文件 /etc/dhcp/dhcpd.conf 中 ,並添加兩行,以本人IP(192.168.11.11/24 爲例) , 如下圖
192.168.11.11 爲 tftp 服務器IP地址 , filename 爲PXE引導程序文件名稱 .
5. 啓動 dhcp 服務 , 並允許開機自啓動
systemctl restart dhcpd
systemctl enable dhcpd
部署tftp-server服務流程:
1. 查看軟件是否已安裝: rpm -q tftp-server
2. 安裝tftp 服務軟件: yum install -y tftp-server
3. 查看tftp 服務配置文件並用vim 編輯此文件 , 將配置文件中的disabled = yes 改爲 = no 如圖:
4. 啓動 tftp 服務 , 並設置開機自啓動
systemctl restart tftp
systemctl enable tftp
安裝提供pxelinux.0的syslinux軟件,共享pxe引導程序文件
1. 查軟件是否已安裝: rpm -q syslinux mlocate
2. 安裝指定的軟件: yum install -y syslinux mlocate
3. 更新locate文件查找數據庫: updatedb
4. 查找pxelinux.0文件: locate pxelinux.0
5. 切換到tftp-server的默認共享目錄: cd /var/lib/tftpboot
6. 複製指定的文件到當前目錄中: cp -v /usr/share/syslinux/pxelinux.0 ./
7. 查看磁盤空間使用狀態: df -hT
8. 複製光盤掛載點目錄中指定的文件到當前目錄中: cp -v /dvd/isolinux/* ./
9. 在當前目錄中創建pxelinux.cfg目錄: mkdir -v pxelinux.cfg
10. 複製指定的文件到指定目錄中並改名爲default: cp -v isolinux.cfg pxelinux.cfg/default
文件共享服務部署(以vsftpd 爲例):
1. 查軟件是否已安裝:rpm -q vsftpd
2. 安裝tftp-server服務器軟件:yum install -y vsftpd
3. 查配置文件列表:rpm -qc vsftpd
4. 啓動vsftpd服務,允許開機自動啓動服務
systemctl restart vsftpd
systemctl enable vsftpd
5. 創建/var/ftp/dvd目錄 , 共享centos7的系統鏡像到/var/ftp/dvd目錄
mkdir -v /var/ftp/dvd
mount /dev/sr0 /var/ftp/dvd
完成上述 dhcp , tftp , vsftpd 服務後 , 採用kickstart 程序或用 vim 來創建 ks.cfg 配置文件 . 並用文件共享服務來共享ks.cfg 自動應答文件.
使用 vim 創建 ks.cfg 自動應答文件:
技巧 : linux系統在安裝時會自動生成一個anaconda-ks.cfg 配置文件 ,文件位於/root 目錄中 . anaconda-ks.cfg 裏面記錄的就是用戶在安裝系統時所作的操作 , 像選擇語言環境 , 硬盤分區 , 安裝的軟件包 , 網卡IP設置 , 設置主機名 , root密碼 ,新建普通等一系列操作
具體步驟:
1.修改/root/anaconda-ks.cfg 權限爲 644 , 複製該文件到vsftpd服務共享目錄/var/ftp/ks 目錄中
2.修改 /var/lib/tftpboot/pxelinux.cfg/default 啓動菜單文件
vim /var/lib/thtpboot/pxelinux.cfg/default
:set nu 顯示行號
找到第64行文件,
修改64行內容爲append initrd=initrd.img method=ftp://192.168.11.11/dvd ks=ftp://192.168.11.11/ks/ks.cfg
之後開啓客戶機 , 客戶機會先獲取IP , 再進入安裝界面,如圖:
用上下方向鍵選擇第一個 , 按 Tab 鍵 , 下面會出現圖上白色的字樣 , 再按enter 鍵安裝 , 客戶機會自動根據/var/lib/tftpboot/pxelinux.cfg/default 內容進行自動化安裝 .
----------------------------
附:ks.cfg 配置文件解析:
cat /var/ftp/ks/ks.cfg 查看ks.cfg自動應答文件 |
#version=DEVEL系統版本號爲DEVEL開發版 # System authorization information系統認證信息,即指定系統密碼加密方式爲sha512加密算法 auth --enableshadow --passalgo=sha512 # Use CDROM installation media使用CDROM光盤安裝媒體 cdrom # Use graphical install使用圖形安裝界面進行系統安裝,此處可用graphical圖形、也可用text文本方式。 graphical # Run the Setup Agent on first boot運行設置代理在第1次啓動時 firstboot --enable ignoredisk --only-use=sda # Keyboard layouts鍵盤佈局 keyboard --vckeymap=cn --xlayouts='cn' # System language系統語言環境 lang zh_CN.UTF-8
# Network information網絡信息,包括IP地址獲取方式(static或dhcp)、網關、device網卡設備名、nameserver域名解析服務器IP地址、netmask子網掩碼、IPv6的IP地址等。 network --bootproto=static --device=ens33 --gateway=192.168.11.2 --ip=192.168.11.11 --nameserver=114.114.114.114,8.8.8.8 --netmask=255.255.255.0 --ipv6=auto --activate network --hostname=localhost.localdomain
# Root password――指定root用戶的登錄密碼,是加密後的密碼 rootpw --iscrypted $6$6vsqEcQaDu/y9CkV$1ZSy74HR1mxG.i0xBiUALwywaWCx2zgbWx5QRbJ2Nskck.29C2UxjXIr5jM6LatiaKtip7nvnQ2B5xrype.pA. # System services系統服務,以下是允許chronyd網絡時間服務開機自動啓動 services --enabled="chronyd" # System timezone系統時區,新建普通用戶jin並設置登錄密碼 timezone Asia/Shanghai --isUtc user --groups=wheel --name=jin --password=$6$MHU28rsP7sGGkw7s$JaqYHxDXAHmQaEHS33Py7kvnrKtfMnFp8HqlGw3xy6PAo1dtkxeKOGpi2Yg9UqXJqDLnTjsBkauRekkPYycvt/ --iscrypted --gecos="jin" # X Window System configuration information――x window系統配置 xconfig --startxonboot # System bootloader configuration系統引導程序配置 bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda # Partition clearing information分區表清除信息 clearpart --none --initlabel # Disk partitioning information磁盤分區表信息 #創建名稱爲pv.157這個PV,在sda硬盤上,容量大小爲50175兆 part pv.157 --fstype="lvmpv" --ondisk=sda --size=50175 #創建/boot分區,文件系統類型爲xfs,在sda硬盤上,容量大小爲1024兆 part /boot --fstype="xfs" --ondisk=sda --size=1024 #創建名稱爲centos的VG卷組,PE大小爲4096K,在pv.157這個PV中創建 volgroup centos --pesize=4096 pv.157 #創建/根的邏輯卷,文件系統類型爲xfs,最大容量爲51200兆,初始容量大小爲1024兆,邏輯卷名稱爲root,組卷名稱爲centos logvol / --fstype="xfs" --grow --maxsize=51200 --size=1024 --name=root --vgname=centos logvol swap --fstype="swap" --size=2048 --name=swap --vgname=centos
#設置需要安裝的軟件包和軟件包分組 %packages @^gnome-desktop-environment @base @core @desktop-debugging @dial-up @directory-client @fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @networkmanager-submodules @print-client @x11 chrony kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
%anaconda pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty %end |
------------------------------
使用kickstart軟件來生成ks.cfg自動應答文件。
步驟:
1. 搜索kickstart 關鍵字的軟件
yum search kickstart
2. 安裝 kickstart 軟件包
yum install -y system-config-kickstart
3. 啓動kickstart 配置程序
system-config-kickstart
完成安裝之後,啓動kickstart , 會自動彈出 kickstart 設置界面 , 如圖所示:
點擊左上角文件 --> 預覽 , 裏面所示爲 kickstart 生成的自動化安裝文件 ks.cfg 的內容 :
問題:圖中的“軟件包選擇”界面會出現下圖所示的錯誤:問題的原因是yum源的repo文件中的“倉庫標識”必須用[development]
修改yum源配置文件:
vim /etc/yum.repos.d/local.repo 文件內容如下
[development]
name=centos 7.5 linux
baseurl=file:///dvd
enabled=1
gpgcheck=0
yum 源設置可詳細參考 https://blog.51cto.com/14181896/2344517
修改yum 源倉庫標識之後 , 再啓用kickstart , 軟件包選擇就會變成如下圖所示 , 勾選需要安裝的軟鍵 , 客戶機安裝系統上就會自動安裝 .
管理員可根據需求對kickstart軟件進行設置自動化安裝過程 , 設置好之後 ,左上角文件保存 , 會自動生成一個ks.cfg 的文件 ,把生成的文件放在 /var/ftp下 , 客戶機會根據kickstart設置的內容進行自動安裝 .