配置原理和安裝思路:linux
一、客戶端網卡在主機啓動初始化時經過網卡內置的PXE芯片啓動DHCP進程向server獲取IP地址,網卡獲取到IP地址後,server會提供給client一個下載Bootloader的指令,就是dhcp服務器中dhcpd.conf配置文件中filename這個選項。express
二、網卡PXE芯片中已經包含了tftp-client程序,獲取到IP地址後,網卡會啓動tftp服務去向tftp-server請求傳輸這個Bootloader文件PXElinux.0。當Bootloader加載後咱們能夠看到主機屏幕上有信息顯示,而這個畫面就是咱們在用光盤介質安裝linux的時候看到的第一個畫面。畫面提示選擇圖形界面安裝仍是linux text字符界面安裝等信息。若是在server端的tftpboot目錄下只有這個文件,那麼客戶機會一直停留在boot這個地方,由於沒有default這個Bootloader配置文件告訴機器下一步加載哪一個系統內核,default配置文件的做用是告訴主機從哪裏去加載操做系統內核,這個時候若是咱們按照正常光碟裝機時會看到提示:輸入回車或者linux text等信息。Bootloader會去調用default配置文件中的操做系統內核文件。vim
三、default 文件配置好以後,接着就是指定內核文件,這個在default文件最後。就是vmlinuz,initrd.img *.msg 這幾個文件。ruby
四、到這一步加載成功後,系統就按照咱們日常光碟裝系統看到的過程如出一轍了,選擇語言,鼠標,鍵盤等,但由於有了KS這個自動安裝腳步,這些都不要咱們手工去指定,所有會自動完成。bash
系統環境:服務器
這裏使用nfs、dhcp、tftp組建無人值守安裝:網絡
Red Hat Enterprise Linux 5 (2.6.18-8.el5)架構
軟件環境:app
dhcp-3.0.5-3.el5 # 提供動態主機地址分配功能less
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系統安裝盤中獲取]
1、準備RHEL5安裝源:
一、建立一個安裝源目錄
[root@david ~ 18:54 &1]#mkdir -pv /install/rhel5
二、將iso文件掛載到本機
[root@david ~ 19:05 &2]#mount /dev/cdrom /mnt/
三、將iso文件拷貝到安裝源目錄下
[root@david ~ 19:06 &3]#cp -rf /mnt/* /install/rhel5/
2、安裝所須要的模塊:
一、進入到rpm包目錄
[root@david ~ 19:14 &4]#cd /install/rhel5/Server/
二、安裝所須要的模塊,執行‘若是軟件包已經安裝能夠覆蓋命令--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
3、配置nfs服務:
配置nfs共享文件
[root@david Server 19:30 &6]#vim /etc/exports
(添加配置參數,將安裝源共享給全部主機,賦予只讀權限)
/install/rhel5 *(ro)
4、配置PXE引導目錄及文件:
一、創建TFTP根目錄及客戶端配置目錄
[root@david Server 19:34 &7]#mkdir -pv /tftpboot/pxelinux.cfg/
二、 拷貝系統引導文件
[root@david Server 19:37 &8]#cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
三、拷貝安裝源的內核文件
[root@david Server 19:46 &9]#cp /install/rhel5/p_w_picpaths/pxeboot/vmlinuz /tftpboot/
四、拷貝安裝源的ramdisk初始化文件
[root@david Server 19:46 &10]#cp /install/rhel5/p_w_picpaths/pxeboot/initrd.img /tftpboot/
5、創建引導客戶端的配置文件:
創建客戶機默認啓動應用文件
[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 #重點,不能搞錯路徑,不然沒法加載網卡啓動文件
6、配置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. #} }
7、配置tftp服務器:
[root@david Server 20:41 &13]#vim /etc/xinetd.d/tftp
找到disable這一行,將yes換成no,而且保存退出
8、在/install/rhel5目錄下建立自動安裝配置文件 ks.cfg:
一、能夠複製本機安裝配置文件進行修改
[root@david Server 20:44 &14]#cp /root/anaconda-ks.cfg /install/rhel5/ks.cfg
二、修改權限
[root@david Server 20:49 &15]#chmod +r /install/rhel5/ks.cfg
三、修改安裝配置文件
[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 #這裏還能夠添加些其餘須要的軟件包,如開發包等,或者能夠寫一些需求的腳本等
9、開啓各項服務,注意順序,及關閉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