配置原理和安裝思路:
1、客戶端網卡在主機啓動初始化時通過網卡內置的PXE芯片啓動DHCP進程向server獲取IP地址,網卡獲取到IP地址後,server會提供給client一個下載Bootloader的指令,就是dhcp服務器中dhcpd.conf配置文件中filename這個選項。
2、網卡PXE芯片中已經包含了tftp-client程序,獲取到IP地址後,網卡會啓動tftp服務去向tftp-server請求傳輸這個Bootloader文件PXElinux.0。當Bootloader加載後我們可以看到主機屏幕上有信息顯示,而這個畫面就是我們在用光盤介質安裝linux的時候看到的第一個畫面。畫面提示選擇圖形界面安裝還是linux text字符界面安裝等信息。如果在server端的tftpboot目錄下只有這個文件,那麼客戶機會一直停留在boot這個地方,因爲沒有default這個Bootloader配置文件告訴機器下一步加載哪個系統內核,default配置文件的作用是告訴主機從哪裏去加載操作系統內核,這個時候如果我們按照正常光碟裝機時會看到提示:輸入回車或者linux text等信息。Bootloader會去調用default配置文件中的操作系統內核文件。
3、default 文件配置好之後,接着就是指定內核文件,這個在default文件最後。就是vmlinuz,initrd.img *.msg 這幾個文件。
4、到這一步加載成功後,系統就按照我們平常光碟裝系統看到的過程一模一樣了,選擇語言,鼠標,鍵盤等,但因爲有了KS這個自動安裝腳步,這些都不要我們手工去指定,全部會自動完成。
系統環境:
這裏使用nfs、dhcp、tftp組建無人值守安裝:
Red Hat Enterprise Linux 5 (2.6.18-8.el5)
軟件環境:
dhcp-3.0.5-3.el5 # 提供動態主機地址分配功能
nfs-utils-1.0.9-16.el5 #提供類UNIX架構的操作系統間文件共享功能
syslinux-3.11-4 #提供系統的啓動鏡像文件.
tftp-server-0.42-3.1 #提供無需驗證的TFTP服務器端
xinetd-2.3.14-10.el5 #提供超級服務器管理
[上述軟件均可從RHEL5系統安裝盤中獲取]
一、準備RHEL5安裝源:
1、創建一個安裝源目錄
[root@david ~ 18:54 &1]#mkdir -pv /install/rhel5
2、將iso文件掛載到本機
[root@david ~ 19:05 &2]#mount /dev/cdrom /mnt/
3、將iso文件拷貝到安裝源目錄下
[root@david ~ 19:06 &3]#cp -rf /mnt/* /install/rhel5/
二、安裝所需要的模塊:
1、進入到rpm包目錄
[root@david ~ 19:14 &4]#cd /install/rhel5/Server/
2、安裝所需要的模塊,執行‘如果軟件包已經安裝可以覆蓋命令--replacepkgs’
[root@david Server 19:26 &5]#rpm -ivh tftp-server-0.42-3.1.i386.rpm dhcp-3.0.5-3.el5.i386.rpm nfs-utils-1.0.9-16.el5.i386.rpm syslinux-3.11-4.i386.rpm xinetd-2.3.14-10.el5.i386.rpm --replacepkgs
三、配置nfs服務:
配置nfs共享文件
[root@david Server 19:30 &6]#vim /etc/exports
(添加配置參數,將安裝源共享給所有主機,賦予只讀權限)
/install/rhel5 *(ro)
四、配置PXE引導目錄及文件:
1、建立TFTP根目錄及客戶端配置目錄
[root@david Server 19:34 &7]#mkdir -pv /tftpboot/pxelinux.cfg/
2、 拷貝系統引導文件
[root@david Server 19:37 &8]#cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
3、拷貝安裝源的內核文件
[root@david Server 19:46 &9]#cp /install/rhel5/images/pxeboot/vmlinuz /tftpboot/
4、拷貝安裝源的ramdisk初始化文件
[root@david Server 19:46 &10]#cp /install/rhel5/images/pxeboot/initrd.img /tftpboot/
五、建立引導客戶端的配置文件:
建立客戶機默認啓動應用文件
[root@david ~ 21:26 &8]#cp /install/rhel5/isolinux/*.msg /tftpboot/pxelinux.cfg/ [root@david Server 19:50 &11]#vim /tftpboot/pxelinux.cfg/default
default rhel5 #默認標籤設爲rhel5 prompt 1 #開啓顯示過程信息 timeout 30 #檢測超時等待的時間值 label rhel5 #標籤爲rhel5的啓動加載情況 kernel vmlinuz #定義內核文件 append initrd=initrd.img ks=nfs:192.168.0.122:/install/rhel5/ks.cfg #重點,不能搞錯路徑,否則無法加載網卡啓動文件
六、配置DHCP服務器:
配置DHCP文件
[root@david Server 20:25 &12]#vim /etc/dhcpd.conf
ddns-update-style none; #動態dns更新方式爲NONE ignore client-updates; #忽略客戶端更新 subnet 192.168.0.0 netmask 255.255.255.0 { #關鍵部位,宣告自己的DNS服務器服務的網段 option routers 192.168.0.1; # 相當於作用域選項的路由器選項(003) option subnet-mask 255.255.255.0; # 子網掩碼選項 option domain-name "localdomain"; #相當於DNS後綴(015) option domain-name-servers 202.96.209.6,202.96.209.133; #相當於DNS服務器地址(006) default-lease-time 21600; #默認租約 6小時 max-lease-time 43200; #最大租約12小時 range 192.168.0.100 192.168.0.200; #關鍵部位 : 定義作用域(地址池) ----一段可供DHCP服務器分配的地址範圍. next-server 192.168.0.122; #指定TFTP服務器的地址 filename "pxelinux.0"; #該文件位於tftp服務器中指定的/tftpboot/目錄中,是PXE啓動時用到的BOOTLOADER文件. #host PC001 { #如有需要,可以爲個別客戶機設置IP/MAC地址綁定,專業稱之爲保留.這裏PC001是主機名. #hardware ethernet 00:0C:29:de:44:82; #客戶機的MAC地址,在裸機開機啓動時從網卡啓動看到的地址. #fixed-address 192.168.10.101; #爲客戶機保留的地址,綁定到固定的IP. #} }
七、配置tftp服務器:
[root@david Server 20:41 &13]#vim /etc/xinetd.d/tftp
找到disable這一行,將yes換成no,並且保存退出
八、在/install/rhel5目錄下創建自動安裝配置文件 ks.cfg:
1、可以複製本機安裝配置文件進行修改
[root@david Server 20:44 &14]#cp /root/anaconda-ks.cfg /install/rhel5/ks.cfg
2、修改權限
[root@david Server 20:49 &15]#chmod +r /install/rhel5/ks.cfg
3、修改安裝配置文件
[root@david Server 20:50 &16]#vim /install/rhel5/ks.cfg
# Kickstart file automatically generated by anaconda. install #表示安裝,而不是升級 text #文本方式安裝 nfs --server 192.168.0.122 --dir=/install/rhel5 #安裝方式,如果是網絡安裝的話可以寫成 url --url ftp://192.168.0.122/dir 或者 nfs --server=192.168.0.122 --dir=/install/rhel5 key 2515dd4e215225dd #因爲是redhat系統,會要求輸入key,如果想跳過,可以配置爲:key --skip lang en_US.UTF-8 #語言配置 keyboard us #鍵盤式樣 network --device eth0 --bootproto dhcp --hostname david1 #網絡設置及主機名,網絡配置具體參數樣例:network –onboot yes --bootproto=static --ip=192.168.0.x --netmask=255.255.255.0 其他網關,DNS等格式和ifcfg-ethx的方式一樣 rootpw --iscrypted $1$OL9BN3ZY$Z4DPRSimm/VDmMFIAwxqL0 #管理員密碼,是加密過的 要是使用不加密的方式則這樣寫:rootpw 123456 firewall --enabled --port=22:tcp #開啓防火牆,並打開ssh端口 authconfig --enableshadow --enablemd5 #用戶認證和密碼加密方式 selinux --enforcing #強制打開selinux timezone --utc Asia/Shanghai #時區設置 zerombr yes #清空磁盤mbr,特別注意新機子,在沒有格式化磁盤時需加上這條 bootloader --location=mbr --driveorder=sda #引導程序相關參數 # The following is the partition information you requested # Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is # not guaranteed to work clearpart --linux --drives=sda #初始化磁盤 part /boot --fstype ext3 --size=100 --ondisk=sda part pv.2 --size=0 --grow --ondisk=sda volgroup VolGroup00 --pesize=32768 pv.2 logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=512 --grow --maxsize=1024 logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow #這裏的配置中,volgroup是卷組的意思,後面的VolGroup00是卷組名,LogVol00是邏輯卷 reboot %packages #安裝的核心軟件包組 @dialup #這裏還可以添加些其他需要的軟件包,如開發包等,或者可以寫一些需求的腳本等
九、開啓各項服務,注意順序,及關閉selinux與防火牆iptables或者配置iptables規則:
(iptables在INPUT鏈上也可以指定一條規則:iptables -A INPUT -p udp --dport 67 -j ACCEPT)
[root@david Server 21:16 &17]#service portmap start [root@david Server 21:20 &18]#service nfs start [root@david Server 21:20 &19]#service dhcpd start [root@david Server 21:21 &20]#service xinetd start