1. 程式人生 > 其它 >Linux+PXE+DHCP+TFTP+NFS實現無人值守安裝

Linux+PXE+DHCP+TFTP+NFS實現無人值守安裝

一、實驗環境:
OS:Redhat6.4
軟體:DHCP服務、TFTP服務、NFS服務
硬體:Dell R630伺服器兩臺
物理連線圖:


em1 em1


二、工作原理:
伺服器通過PXE網絡卡啟動,從dhcp伺服器獲取IP,通過tftp下載pxelinux.0檔案找到pxelinux.cfg裡的配置檔案,按配置檔案找著vmlinuz引導OS進入安裝介面,之後選擇NFS方式安裝系統。
PXE:需要網絡卡支援,並且伺服器BIOS需要修改網絡卡為支援PXE啟動。

三、服務搭建
1、服務端安裝Redhat6.4作業系統
2、伺服器端DHCP服務安裝、配置
#rpm -ivh dhcp-4.1.1-34.P1.el6.x86_64.rpm 安裝dhcp
#vim /etc/dhcp/dhcpd.conf 修改配置檔案
ddns-update-style none;
option routers 192.168.0.1; ##網路dhcp服務路由、區域網中可以直接指向伺服器ip
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.0.1;##dhcp伺服器域名(本機用ip表示)
default-lease-time 21600;
max-lease-time 43200;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.100;##dhcp地址池範圍定義(192.168.0.0/24 xxx.10-xxx.100 )
# TFTP Server
filename "pxelinux.0";##TFTP服務傳送到記憶體中的檔案
next-server 192.168.0.1; ##dhcp伺服器ip地址
}
#service dhcpd start 啟動服務
3、服務端TFPT安裝、配置
#rpm -ivh /install/Packages/tftp-server-0.49-7.el6.x86_64.rpm 安裝tftp服務
#vim /etc/xinetd.d/tftp 修改tftp配置檔案
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot ##tftp服務目錄
disable = no ##no表示開啟 yes表示關閉
per_source = 11
cps = 100 2
flags = IPv4
}
#mkdir -p /var/lib/tftpboot 根據tfpt配置檔案 server_args對應的目錄建立
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 將啟動檔案拷貝到tftp目錄
# cp /install/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ 將核心檔案拷貝到tftp目錄
#cd /var/lib/tftpboot;mkdir –p pxelinux.cfg 載入pxelinux.0檔案後 客戶端會搜尋服務端pxelinux.cfg目錄
#vim default 在新建的pxelinux.cfg目錄下建立default檔案,來告知記憶體載入tftp目錄中安裝檔案

default linux
#prompt 1
timeout 600

display boot.msg

menu background splash.jpg
menu title Welcome to Red Hat Enterprise Linux 6.4!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append ks=nfs:192.168.0.1:/install/ks.cfg ksdevice=em1 initrd=initrd.img

#service xinetd start 啟動tftp服務

4、NFS服務安裝、配置
# rpm -ivh nfs-utils-1.2.3-36.el6.x86_64.rpm
# rpm -ivh nfs-utils-lib-1.1.5-6.el6.x86_64.rpm
#vim /etc/exports 配置共享目錄
/install *(ro,sync) ## 將/install 目錄下所有內容共享出去
#service nfs start 啟動nfs服務
#exportfs 啟用共享 正常情況顯示 /install <word>
#showmount -e 檢視當前共享的檔案 正常情況顯示 /install *
5、建立ks.cfg無人值守配置檔案
有兩種方式獲取ks.cfg檔案,1、可以通過終端執行:system-config-kickstart指令來啟動kickstart的圖形化介面配置程式來生成一個安裝配置檔案,這種方式需要自己在ks.cfg配置檔案中輸入要安裝的RPM包的名稱(推薦使用)2、可以直接通過修改/root/ naconda-ks.cfg檔案來獲取。
6、系統安裝介質拷貝到服務端共享目錄
#mount /dev/cdrom /media 將系統光碟mount到/media目錄下
#cp -r /media/* /install 將所有檔案拷貝到共享目錄中
#cp /root/naconda-ks.cfg /install/ks.cfg 將生成的ks.cfg檔案也拷貝到共享目錄
四、客戶端作業系統安裝
客戶端設定BIOS啟動順序:必須保證硬碟啟動在網絡卡啟動前面否則會重複安裝過程
Cdrom
硬碟
NIC
開啟網絡卡PXE功能,(只需要開啟插網線的哪塊網絡卡)
儲存配置重啟伺服器,機器自動從網絡卡啟動進行系統安裝
五、總結後續計劃
本次實驗實現了伺服器作業系統的自動安裝,在批量機器上架的時候可以執行開機就可以完成自動化的作業系統安裝,但是伺服器的ip配置還不能做到定製化,後續實驗看是否可以通過改進ks.cfg檔案,新增安裝後執行指令碼,對伺服器的ip進行定製化安裝。