無人值守安裝--PXE網絡裝機
簡介:
PXE:(無人值守安裝?) Pre-boot eXcution Environment
批量安裝操作系統:
PXE服務器 客戶端(網卡要支持網絡引導)
需要部署的服務:DHCP NFS YUM TFTP(提供引導程序下載
) DNS
任務:
用ip192.168.1.1/24主機做pxe服務器,能夠給192.168.1.0/24網段內的
所有主機提供
自動安裝操作系統的功能,具體功能如下:
1、能夠給客戶端自動安裝rhel5操作系統
2、給客戶端分配tarena.com域的主機名
3、給客戶端分配網關、DNS
實現自動獲取IP網絡安裝linux是這樣的:客啓端PXE網卡啓動-->通過Bootp協議廣播dhcp請求-->DHCP服務器-->獲取IP,TFTP服務器地址-->從TFTP上下載 pxelinux.0以及系統內核文件vmlinuz、initrd.img-->啓動系統-->(到指定url去下載ks.cfg文件-->根據ks.cfg文件去NFS/HTTP/FTP服務器自動下載軟件包)安裝系統-->完成安裝。
配置步驟:
1、搭建dns服務器給pxe客戶端分配tarena.com域的主機名
******注意這裏的正向解析和反向解析都要做,客戶端分配不到主機
名和ip地址*********************************************
1)yum -y install bind bind-chroot (caching-nameserver)//安裝軟件包
# cat /var/named/chroot/etc/named.conf
options {
directory "/var/named/";
#/var/named/chroot/var/named/
};
zone "tarena.com" {
//寫正向區域文件
type master;
file "tarena.zone";
};
zone "1.168.192.in-addr.arpa" {//寫反向區域文件,注意這裏的反寫
type master;
file "192.zone";
};
2)分別做正反向解析
# cat /var/named/chroot/var/named/tarena.zone
$TTL 3600
@ IN SOA www.tarena.com. root (
2014040200
28800
14400
17400
86400
)
IN NS www.tarena.com.
$GENERATE 2-253 student$.tarena.com. IN A 192.168.1.$
//主機名和ip地
址做正向解析
[root@localhost ~]# cat /var/named/chroot/var/named/192.zone
$TTL 3600
@ IN SOA www.tarena.com. root (
2014040200
28800
14400
17400
86400
)
IN NS www.tarena.com.
$GENERATE 2-253 $ IN PTR student$.tarena.com.
//反
向解析
配置完成。測試dns的解析功能
#host student20.tarena.com
#host 192.168.1.20
3) #service named start
#chkconfig named on//不
要忘記開機自啓動
2、配置dhcp服務(給客戶端分配ip地址)
DHCP需要指定next-server(TFTP的服務器)和filename (網卡引導文
件名)
1)#yum -y install dhcp
//安裝軟件包
2)編輯配置文件
可以參考/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
[root@localhost ~]# cat /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;
option domain-name "tarena.com";
option domain-name-servers 192.168.1.1;
option time-offset -18000;
range 192.168.1.2 192.168.1.253; default-
lease-time 21600;
max-lease-time 43200;
next-server 192.168.1.1;//TFTP服務器的ip地址
filename "pxelinux.0";//網卡引導文件名
}
3)dhcpd 檢查dhcp配置文件的錯誤
#service dhcpd restart
#chkconfig --level 35 dhcpd on //開機自啓動
3、配置tftp服務:(tftp:小文件匿名共享)
共享引導文件:系統引導和 網卡引導文件 default文件
tftpboot/ tftp的根目錄
1)安裝tftp軟件:
默認是安裝的# rpm -q tftp-server
ftp-server-0.49-2
2)編輯tftp的配置文件
tftp服務由xinetd服務(臨時服務)管理,監聽udp的69端口
#vim /etc/xinetd.d/tftp
service tftp
{
… …
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot//服務根目錄,
不需要修改
disable = no//把yes改爲no,
啓動服務
… …
}
# service xinetd restart//重啓xinetd服務,啓動tftp
服務
#netstat –anptu |grep 69//查看啓動狀態
2)共享系統引導文件(系統引導文件和網卡引導文件)
系統引導文件在系統光盤內,需要先掛載光盤,然後執行拷貝
initrd.img vmlinuz 共享網卡的引導文件
#mount /dev/cdrom /mnt
#cd /mnt/isolinux //引
導文件的存放目
錄isolinux
#cp vmlinuz initrd.img /tftpboot/
***********************************************************
vmlinuz initrd.img 分別對應系統啓動的內核文件和鏡像文件,把他
們拷貝到tftp服務器的根目錄下,並查看其權限
***********************************************************
3)共享網卡引導文件pxelinux.0
網卡引導文件由syslinux軟件包提供
#yum -y install syslinux
# rpm -q syslinux
syslinux-4.02-7.2.el5
#rpm -ql syslinux | grep 'pxelinux.0'//檢索一下網卡引導文件所
在路徑
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost isolinux]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
//把檢索出來的結果拷貝到tftp服務器根目錄裏
4)共享default文件:
pxe服務器可以指定客戶端安裝哪一個操作系統,default文件用來設置
客戶端默認安裝的操作系統類型
default文件需要手動編輯,可以參考光盤裏的模板文件isolinux.cfg
#mkdir /tftpboot/pxelinux.cfg//先創建
pxelinux.cfg文件夾
# cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
//拷貝並改名爲default
***********************************************************
拷貝過來之後查看一下文件權限,增加w權限,修改文件
**********************************************************
#vim /tftpboot/pxelinux.cfg/default //編輯默認啓動標籤
default rhel5 //默認從哪個標籤引導系統
prompt 1//是否交互式安裝
timeout 100//進默認系統的等待時間
display boot.msg
F1 boot.msg //有無背景圖片
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label rhel5//定義標籤名
kernel vmlinuz
append initrd=initrd.img ks=nfs:192.168.1.1:/ks/ks.cfg
//手動添加
kickstart服務
4、 配置nfs服務 :
共享ks文件(自應答):客戶端安裝操作系統時的安裝配置文件和客
戶端安裝操作系統需要的rpm軟件包
首先確保安裝了nfs軟件包
# rpm -qa | grep nfs
#yum –y install nfs
#yum –y install portmap
#mkdir /ks//創建的文件名必須要根
default標籤裏的同名
#vim /etc/exports
/ks*(ro)//掛載nfs共享
/mnt*(ro)
#service nfs restart
#service portmap start//不要忘記開啓portmap服務
#chkconfig nfs on
#chkconfig portmap on
#showmount –e localhost//查看nfs共享是
否成功
Export list for localhost:
/ks *
/mnt *
5、生成ks文件(2種方式)
模板生成:cp /root/ anaconda-ks.cfg ks.cfg 修改裏面的設置
工具生成:先配置yum源(yum源的名字必須以rhel開頭)
#mount /dev/cdrom /mnt
[root@localhost ~]# cat /etc/yum.repos.d/iso.repo
[rhel-debuginfo]//注
意這裏必須用rhel開頭
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=file:///mnt/Server
enabled=1
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
yum源的名字必須以rhel開頭,要不然獲取不到軟件包
安裝提供生成ks文件命令的軟件包
#yum -y install system-config-kickstart
# system-config-kickstart//服務的啓動就
是用軟件包的名字
(需要圖形的 所以系統必須運行在level5級別)
這時候會進入圖形化的kickstart
其中選擇安裝方法nfs(這裏就是rpm包的所在目錄)
通過圖形,選擇系統啓動過程參數,包括語言,鍵盤,root的命名,
grub口令,分區情況,添加網絡配置,防火牆,定製軟件包等
配置完成之後點擊文件----保存文件,選擇要保存到的路徑/ks和名稱
ks.cfg
目錄存放的地方必須要與配置文件中寫的一致
保存後會生成ks.cfg文件,裏面放置的就是配置文件,不要忘記添加
一條key –-skip
#service nfs restart
至此pxe服務器配置完成
如果要用模板文件來配置,cp /root/anaconda-ks.cfg ks.cfg
二 配置客戶端
在BIOS設置引導方式爲網絡引導
如果是在vmware上做實驗,要把vmware的本地dhcp服務關閉
無需進入交互式界面就可以進行無人值守安裝了。
實驗總結:
1、首先配置dns服務,其次
dhcp服務:
next-server 192.168.1.1;//TFTP服務器的ip地址
filename "pxelinux.0";//網卡引導文件名
註釋:The next-server statement is used to specify the host address of
the server from which the initial boot file (specified in the
filename statement) is to be loaded. Server-name should be a
numeric IP address or a domain name.
2、 tftp服務,共享引導文件:系統引導和 網卡引導文件 default文件
因爲tftp是小文件匿名共享的,所以裏面放的都是比較小的文件,大
文件比如rpm包用nfs共享
vmlinuz initrd.img 分別對應系統啓動的內核文件和鏡像文件
3配置過程中不要忘記查看tftp下的文件權限,如果權限不夠是不能被
獨到的,文件讀取不到是安裝不了系統的
光盤裏的isolinux.cfg是/tftpboot/pxelinux.cfg/ default的模板,通過default
進行默認啓動標籤
4、配置nfs的時候不要忘記portmap服務
5、生成ks.cfg 文件可以用keckstart工具也可以用模板生成;
生成ks.cfg文件,用工具的時候,yum源的名字必須要以rhel開頭
6、 安裝過程中出現的幾個文件:
pxelinux.0 網卡引導文件,由syslinux軟件包提供
vmlinuz 系統啓動的內核文件,在系統光盤內
initrd.img 系統內核鏡像文件,在系統光盤內
isolinux.cfg 光盤中的default引導文件的模板,在
系統光盤內
default 默認啓動標籤,從光盤中isolinux.cfg拷
貝過來改名後得到
但是要創建
pxelinux.cfg目錄來存放default文件
附上linux引導過程:
開機加電自檢→MBR引導→GRUB菜單→內核(kernel)
→init進程→配置/etc/inittab
/etc/inittab的配置包括2部分
→ 一個是執行腳本/etc/rc.d/rc.sysinit
→ 另一個是腳本/etc/rc.d/rc