pxe
PXE(preboot execute environment,預啓動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網絡啓動操作系統,在啓動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啓動軟件包到本機內存中執行,由這個啓動軟件包完成終端(客戶端)基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。PXE可以引導多種操作系統
1、安裝:[[email protected] ~]# yum install dhcp tftp-server httpd syslinux -y
httpd ##共享安裝資源
dhcp ##分配ip以及讓客戶主機獲取pxelinux.0文件
pxelinux.0 ##預安裝環境頭文件,用來指定讀取後續文件的程序
tftp-server ##提供tftp協議,令客戶主機可以讀取到預安裝環境
syslinux ##提供pxelinux.0文件
2、[[email protected] ~]# vim /etc/xinetd.d/tftp
disable = no開啓tftp服務
systemctl restart xinetd 之後重啓服務
3、查看端口
查看69端口 看看tftp服務是否開啓
[[email protected] ~]# netstat -anutple | grep 69
udp 0 0 0.0.0.0:69 0.0.0.0:* 0 29769 1825/xinetd
chkconfig --list 查看tftp是否開啓
xinetd based services:
chargen-dgram: off
chargen-stream: off
daytime-dgram: off
daytime-stream: off
discard-dgram: off
discard-stream: off
echo-dgram: off
echo-stream: off
tcpmux-server: off
tftp: on ##tftp服務開啓
time-dgram: off
time-stream: off
4.製作預安裝環境
第一步 cp /var/www/html/rhel7.0/isolinux/* /var/lib/tftpboot/ (切換到鏡像文件的掛載目錄下 再切換到isolinux目錄下把下面的東西全部拷貝到server中的/var/lib/tftpboot/下
第二步 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
第三步 mkdir /var/lib/tftpboot/pxelinux.cfg
第四步 cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
最後ls查看一下所有的東西
systemctl restart xinetd然後進行重啓服務
5 啓用DHCP服務
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 之後y進行覆蓋
vim /etc/dhcp/dhcpd.conf 修改dhcp的配置文件
option domain-name "example.com"; ##客戶主機域名
option domain-name-servers 172.25.254.182; ##客戶主機獲得到的dns
default-lease-time 600; ##默認租約期
max-lease-time 7200; ##最長租約期
log-facility local7; ##日誌級別
subnet 172.25.254.0 netmask 255.255.255.0 { ##網段,子網掩碼
range 172.25.254.180 172.25.254.190; ##ip地址池 獲取ip的網段
option routers 172.25.254.182; ##客戶主機獲得到的網關
filename "pxelinux.0"; ##客戶主機獲得到的預安裝環境頭文件找的文件爲pxelinux.0
next-server 172.25.254.182; ##指定頭文件所在主機的ip ##表示誰提供tftp服務,就寫該服務器的ip
}
systemctl start dhcpd
systemctl enable dhcpd
systemctl stop firewalldsystemctl disable firewalld
systemctl enable firewalld
之後我們在desktop中進行實驗
1 首先boot啓動方式中選擇pxe啓動
然後開機進行測試 可以看到由DHCP獲取到的ip爲172.25.254.180 剛好是我寫入的網段 以及網關等信息
然後就進入了這個界面
但是我沒有寫入鏡像安裝源 所以還沒辦法安裝
接下來 我們可以在配置文件中修改加入鏡像的安裝源 和 修改 背景 標題 等待時間等
切換在這個目錄下 default就是配置文件
vim /var/lib/tftpboot/pxelinux.cfg/default
2 timeout 60(毫秒爲單位的) 修改等待時間
menu background splash.png 背景圖片 其所在的位置就是在/var/lib/tftpboot/ 我們可以自己在這個路徑中加入圖片 更改這個名稱指向源既可以更改 背景 但是要注意 格式的修改
11 menu title Dou you see my small bear ? 標題 名稱
61 label linux
62 menu label ^Install Red Hat Enterprise Linux 7.0
63 menu default 更改默認所在行數 這裏默認我們感概成了 簡短單詞的 這一行
64 kernel vmlinuz
65 append initrd=initrd.img repo=http://172.25.254.250/rhel7 鏡像安裝源的地址
66
67 label check
68 menu label Test this ^media & install Red Hat Enterprise Linux 7.0
69
70 kernel vmlinuz
71 append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.0\x20Server.x86_64 rd.live. check quiet
我們下載的圖標放在/var/lib/tftpboot中即使修改了配置文件的指向還不能直接用 格式可能有問題 這裏我們可以通過軟件命令來修改格式 convert 首先我們查看這個命令需要下載哪一個軟件
yum whatprovides convert 可以看到需要下載的軟件 然後爲我們進行下載
yum install imagemagick -y
file splash.png 查看一下原來背景圖片的格式 然後使用命令
convert -resize 640x480! annie.png riven.png 後面這個是改成什麼名字 必須加 完了相當於多了一個圖片
然後我們就可以用desktop進行測試了
果然背景圖片發生了改變 標題 所在行數(原來在第二行)也都發生了改變 等待時間也改變了
然後就可以進行安裝了
但是我們還是覺得太麻煩了 這時候就可以使用到kictstart 腳本寫入安裝的動作了 之後就可以實現全自動安裝了
六 設定自動化部署
yum install system-conifig-kickstart
system-config-kickstart ---->/var/www/html/rhel7.0.cfg
system-config-kickstart 然後選擇安裝的動作
選擇下面兩個 並設置好密碼
寫入http安裝 再寫入鏡像文件的位置
第三個不選 第四個全部選擇第一個再進行分區
boot 分區 給200m
swap 分區給500m
剩下的全部給跟下 選擇fill all~
設備寫入eth0
防火牆選擇disabled狀態
然後將這個ks.cfg腳本保存到/var/www/html/下
然後我們可以在ks.cfg這個腳本中寫入想讓安裝中執行的動作和安裝包
38 %packages
39 @base
40 lftp
41 %end
42
43
44
45 %post
46 cat >>/etc/yum.repos.d/yum.repo <<EOF
47 [rhel7.2]
48 gpgcheck=0
49 baseurl=http://172.25.254.22/rhel7.2
50 EOF
51 rm -fr /etc/sysconfig/network-scripts/ifcfg-eth0
52 cat >>/etc/sysconfig/network-scipts/ifcfg-eth0 <<EOF
53 DEVICE=eth0
54 ONBOOT=yes
55 BOOTPROTO=none
56 IPADDR=172.25.254.99
57 NETMASK=255.255.255.0
58 EOF
59 systemctl restart network
60 %end
然後我們可以用ksvalidator ks.cfg命令來查看寫入是否正確沒有問題
vim /var/lib/tftpboot/pxelinux.cfg/default
label autoinstall ##選項標籤
menu label ^Autoinstall RHEL7.0 ##標題
kernel vmlinuz ##啓動的內核文件
這是將7.0鏡像的isolinux中的vmlinuz文件複製過來
append initrd=initrd.img repo=http://172.25.254.100/rhel7.0 ks=http://172.25.254.182/ks.cfg
##初始化鏡像 ##安裝資源 ##自動安裝腳本
然後在配置文件中 鏡像源的後面加上這個ks.cfg腳本的位置 使得系統安裝過程中可以去讀取這個腳本用kickstart裝:
還要做好dhcpd,注意版本,server用7.0的鏡像裝
然後我們仍然在desktop中進行測試 看到ks.cfg腳本被讀取 系統開始安裝 則等待安裝成功即可 大功告成啦!!!~
over~