Linux下搭建無人執守安裝伺服器
什麼是PXE
PXE(預啟動執行環境)是由Intel公司開發的最新技術,工作于Client/Server的網絡模式,支援工作站通過網絡從遠端伺服器下載下傳映像,并由此支援通過網絡啟動作業系統,在啟動過程中,終端要求伺服器配置設定IP位址,再用TFTP或MTFTP協定下載下傳一個啟動軟體包到本機記憶體中執行,由這個啟動軟體包完成終端基本軟體設定,進而引導預先安裝在伺服器中的終端作業系統。
嚴格來說,PXE 并不是一種安裝方式,而是一種引導方式。進行 PXE 安裝的必要條件是在要安裝的計算機中必須包含一個 PXE 支援的網卡(NIC),即網卡中必須要有 PXE Client。PXE 協定可以使計算機通過網絡啟動。此協定分為 Client端和 Server 端,而PXE Client則在網卡的 ROM 中。當計算機引導時,BIOS 把 PXE Client 調入記憶體中執行,然後由 PXE Client 将放置在遠端的檔案通過網絡下載下傳到本地運作。運作 PXE 協定需要設定 DHCP 伺服器和 TFTP 伺服器。DHCP 伺服器會給 PXE Client(将要安裝系統的主機)配置設定一個 IP 位址,由于是給 PXE Client 配置設定 IP 位址,是以在配置 DHCP 伺服器時需要增加相應的 PXE 設定。此外,在 PXE Client 的 ROM 中,已經存在了 TFTP Client,那麼它就可以通過 TFTP 協定到 TFTP Server 上下載下傳所需的檔案了。
什麼是Kickstart
Kickstart是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄典型的需要人工幹預填寫的各種參數,并生成一個名為ks.cfg的檔案。如果在安裝過程中(不隻局限于生成Kickstart安裝檔案的機器)出現要填寫參數的情況,安裝程式首先會去查找Kickstart生成的檔案,如果找到合适的參數,就采用所找到的參數;如果沒有找到合适的參數,便需要安裝者手工幹預了。是以,如果Kickstart檔案涵蓋了安裝過程中可能出現的所有需要填寫的參數,那麼安裝者完全可以隻告訴安裝程式從何處取ks.cfg檔案,然後就去忙自己的事情。等安裝完畢,安裝程式會根據ks.cfg中的設定重新開機系統,并結束安裝。
設定BIOS引導順序為: 硬碟,網絡
前提:硬碟中沒有系統。否則直接從硬碟啟動了
PXE+Kickstart 無人值守安裝作業系統完整過程如下:
<a href="https://s4.51cto.com/wyfs02/M02/92/5D/wKiom1j-4izABhCiAAASstoPKk0650.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M00/92/5D/wKiom1j-4iyQ_6G3AAIDJZa6jWA359.png" target="_blank"></a>
一:實驗環境:
服務端:xuegod-63 IP:192.168.1.63 網卡模式: vmnet4
用戶端:xuegod-64 IP:192.168.1.64 網卡模式: vmnet4
二:實驗代碼
第一塊:安裝ftp,tftp服務部分
1.安裝ftp服務以及開啟服務,設定為開機自動啟動。
[root@xuegod-63 ~]# yum install vsftpd -y
[root@xuegod-63 ~]# service vsftpd restart
[root@xuegod-63 ~]# chkconfig vsftpd on
2.安裝TFTP,修改tftp配置檔案及開啟服務
[root@xuegod-63 ~]# yum install tftp tftp-server xinetd -y
[root@xuegod-63 ~]# vim /etc/xinetd.d/tftp #修改下面紅色部分
#server_args = -s /tftpboot是tftp伺服器運作時的參數。-s /tftpboot表示伺服器預設的目錄是 /tftpboot
1)接着重新啟動xinetd服務,然後檢視服務端口是否打開。
[root@xuegod-63 ~]# /etc/init.d/xinetd restart
[root@xuegod-63 ~]# netstat -anutp | grep xinetd
udp 0 0 0.0.0.0:69 0.0.0.
#OK,TFTP服務正常啟動。Xinetd服務本來就是開機啟動的,是以這裡我們不再需要設定。
第二塊:安裝dhcp,修改配置檔案及開啟服務:
1:配置DHCP伺服器:
[root@xuegod-63 ~]# yum install dhcp –y
[root@xuegod-63 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp:是否覆寫"/etc/dhcp/dhcpd.conf"? Y #複制配置模闆檔案到DHCP的配置目錄中
2:修改配置檔案
[root@xuegod-63 ~]# vim /etc/dhcp/dhcpd.conf
# A slightly different configuration for an internal subnet.
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option domain-name-servers 192.168.1.1;
option domain-name "internal.example.org";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.1.63;
filename "pxelinux.0";
}
注: 隻保留一個subnet {。。。}
3:啟動DHCP,設定為開機啟動
[root@xuegod-63 ~]# service dhcpd restart
[root@xuegod-63 ~]# chkconfig dhcpd on
第三塊:配置使用PXE,kickstart 啟動所需的相關檔案
1:安裝軟體:安裝包
[root@xuegod-63]# yum -y install system-config-kickstart #安裝此包時,會把syslinux軟體包也安裝上。
2:準備tftp需要共享出去的檔案
[root@xuegod-63 ~]# grep tftpboot /etc/xinetd.d/tftp
server_args= -s /var/lib/tftpboot
[root@xuegod-63 ~]# vim /etc/xinetd.d/tftp
[root@xuegod-63 ~]# mkdir /tftpboot
[root@xuegod-63 ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/#注,隻有安裝了system-config-kickstart軟體包,才會有/usr/share/syslinux/目錄及目錄中的檔案。 複制pxelinux.0 檔案至/tftpboot/ 檔案夾中。
[root@xuegod-63 ~]# cp /mnt/images/pxeboot/initrd.img /tftpboot/#虛拟到記憶體中的鏡像檔案
[root@xuegod-63 ~]# cp /mnt/images/pxeboot/vmlinuz /tftpboot/#核心
[root@xuegod-63 ~]# mkdir /tftpboot/pxelinux.cfg
#将iso 鏡像中的/isolinux 目錄中的isolinux.cfg複制到pxelinux.cfg目錄中,同時更改檔案名稱為default
[root@xuegod-63 ~]# cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default #系統啟動
[root@xuegod-63 ~]# chmod 644 /tftpboot/pxelinux.cfg/default#或者給755權限
3:修改/tftpboot/pxelinux.cfg/default的配置檔案
[root@xuegod-63 ~]# vim /tftpboot/pxelinux.cfg/default
#檔案裡面需要修改兩行,修改第1行,linux意思是尋找下面18行的label linux,然後修改下22行(即在後面添加ks=ftp://192.168.1.63/ks.cfg)。第22行的意思是使安裝程式通過FTP伺服器通路主機是192.168.1.63的kickstart檔案。
<a href="https://s4.51cto.com/wyfs02/M01/92/5D/wKiom1j-4nDCSvXGAAA2kHjqmyc999.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M01/92/5C/wKioL1j-4nHRkj6iAAAnse1X_Ts667.png" target="_blank"></a>
#以上有關default配置檔案的修改就是通過ftp伺服器方式來通路kickstart檔案。
4:打開終端輸入system-config-kickstart彈出來界面。
[root@xuegod63 ~]# echo $LANG
en_US.UTF-8
[root@xuegod63 ~]#.UTF-8
[root@xuegod-63 ~]# system-config-kickstart#執行system-config-kickstart彈出來界面。
設定自己後期無人執守安裝需要配置的參數:
我們設定下預設安裝的語言,時區,根密碼,然後勾選下面的安裝後重新開機。然後選擇安裝方法。
我們配置ftp伺服器的安裝方法。選擇執行全新安裝。然後點選引導裝載程式選項
配置grub相關選項。
設定分區大小
配置網絡,預設沒有網絡設定,點選添加網絡,裝置名稱為eth0,網絡類型為dhcp
<a href="https://s2.51cto.com/wyfs02/M01/92/5D/wKiom1j-4tTR2fxcAABKpvkbFkw024.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M01/92/5D/wKiom1j-4tSwQTeSAAAwryLySV4821.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M01/92/5C/wKioL1j-4tTBmbjZAABHVvmcS7E800.png" target="_blank"></a>
驗證,預設就可以了。
防火牆和selinux根據自己需求選擇開啟或者禁用。選擇關閉selinux和防火牆。
打上對勾以圖形界面安裝系統:
#自定義軟體包,預設可能沒有勾選桌面。根據自己需求勾選。 我們為了快速度示範安裝,不選擇安裝桌面。
#安裝腳本:在"預安裝腳本","安裝後腳本"對話框中,可以分别添加在安裝前、安裝後自動動行的可執行語句。此項設定可以使伺服器自動化配置變得更加容易。
例如:配置客戶機在完成安裝後自動設定YUM倉庫。
rm -rf /etc/yum.repos.d/*
echo '[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///mnt/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release' > /etc/yum.repos.d/rhel6.repo
點選左上角的檔案選擇儲存,選擇下儲存的路徑 到此所有關于安裝的配置已經配置完畢,
[root@test1 ~]#cp /root/ks.cfg /var/ftp #複制ks.cfg檔案到/var/ftp目錄下
注:ks.cfg就是無人值守安裝時要用的Kickstart檔案。
要對應:/tftpboot/pxelinux.cfg/default檔案中設定過ks=ftp://192.168.10.1/ks.cfg
配置基于ftp的yum源,用于用戶端安裝時,讀取軟體包用:
5:檢測各項參數
[root@xuegod-63 ~]# vim /var/ftp/ks.cfg
#此時這裡兩處必須要顯示一緻
1)挂載CD光牒并檢視
[root@xuegod-63 ~]# mount /dev/cdrom /var/ftp/pub/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@xuegod-63 ~]# mount
/dev/sr0 on /var/ftp/pub type iso9660 (ro)
2)重新開機服務
[root@xuegod-63 ~]# getenforce
Disabled
[root@xuegod-63 ~]# service vsftpd restart
3)清空防火牆并儲存
[root@xuegod-63 ~]# iptables -F
[root@xuegod-63 ~]# service iptables save
4)檢視
修改xuegod64 BIOS啟動順序為網絡優先,加電後開始啟動。
<a href="https://s1.51cto.com/wyfs02/M02/92/5C/wKioL1j-42bw5ATGAAA86V7dJ9U616.png" target="_blank"></a>
<a href="https://s4.51cto.com/wyfs02/M02/92/5D/wKiom1j-42fw5OMUAABNLFktKjw281.png" target="_blank"></a>
<a href="https://s4.51cto.com/wyfs02/M02/92/5C/wKioL1j-42jxCW_CAAJzYLWetz8770.png" target="_blank"></a>
檢查安裝後,是否執行了腳本
本文轉自 于學康 51CTO部落格,原文連結:http://blog.51cto.com/blxueyuan/1919197,如需轉載請自行聯系原作者