無人值守安裝Linux之Dhcp+tftp+ks+nfs

 
一.適用環境:

1.需要大規模批量部署linux操作系統

2.客戶端無光驅或光驅損壞,需要網絡安裝linux系統

3.需要隔三差五重複安裝linux系統,爲了減少麻煩,節約時間,提高效率。

二、原理

在服務器端搭建DHCPtftpnfs服務並用kickstart配置自動安裝腳本,DHCP服務用於向客戶端分配IP,tftp服務用於傳輸bootloader文件pxelinux.0nfs服務負責傳輸安裝鏡像文件,用kickstart配置的ks.cfg實現無人值守全自動安裝。

前提:客戶端網卡內置PXE芯片,現在一般網卡都支持pxe協議。

三.具體操作過程(基於RHEL)

1.Server IP爲:192.168.0.20 ,安裝鏡像掛載到/mnt下。

2. 安裝tftp 服務 、dhcp服務和nfs服務(一般默認已安裝).
安裝前先查看這些服務是否已安裝

# rpm -qa |grep tftp 

# rpm -qa |grep dhcp

# rpm -qa |grep nfs

# rpm -q portmap  
未安裝的進行安裝
#cd /mnt/RedHat/RPMS/    RHEL5 中是cd /mnt/Server
#rpm –ivh dhcp-*
#rpm –ivh tftp-* 
#rpm –ivh nfs-utils portmap

 

3.配置啓動DHCP服務
#cp cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample /etc/dhcpd.conf
#vi /etc/dhcpd.conf   
添加filename "pxelinux.0";      //指定bootloader文件

     next-server 192.168.0.20;  //指定索取pxelinux.0tftp服務器IP
添加的這兩行可在大括號外面,也可在裏面,next-server選項可不寫,但建議最好寫上
配置舉例:
ddns-update-style interim;
ignore client-updates;

 

subnet 192.168.0.0 netmask 255.255.255.0 {

 

        option routers                  192.168.0.1;
        option subnet-mask              255.255.255.0;
option time-offset              -18000; # Eastern Standard Time

 

range dynamic-bootp 192.168.0.128 192.168.0.254;
        default-lease-time 21600;
        max-lease-time 43200;
        filename "pxelinux.0";

        next-server 192.168.0.20;       

}

#service dhcpd start     //啓動服務
4.複製內核相關文件到/tftpboot
  #cd /tftpboot
  #cp  /mnt/isolinux/*  ./      (
實際需要的是vmlinuzinitrd.img *.msg 這幾個文件,但爲了操作方便,我直接把isolinux目錄下的文件全cp過來)
  #mkdir pxelinux.cfg
  #mv isolinux.cfg     pxelinux.cfg/
default       (
default配置文件的作用是告訴主機從哪裏去加載操作系統內核)
  #cp /usr/lib/syslinux/pxelinux.0  ./    (
將啓動加載文件拷到/tftpboot)
5. 修改tftp參數並啓動tftp服務
# vi /etc/xinetd.d/tftp

……………………………………………………………………………………

          service tftp

           {

            socket_type             = dgram

            protocol                = udp

            wait                    = yes

            user                    = root

            server                  = /usr/sbin/in.tftpd

            server_args             = -s /tftpboot

            disable                 = no

            per_source              = 11

            cps                     = 100 2

            flags                   = IPv4

           }

…………………………………………………………………………………………

 

tftpboot 這個參數主要是指定tftp client 客戶端從服務器的哪個目錄去加載bootloaderpxelinux.0文件。
#service xinetd restart       //啓動服務
或者不改tftp參數直接啓動
#chkconfig tftp on
#service xinetd restart
6.修改/tftpboot/pxelinux.cfg/default文件

#vi /tftpboot/pxelinux.cfg/default
修改第3行,第12.

1 default linux
2 prompt 1
3 timeout
10            //時間調小點
4 display boot.msg
5 F1 boot.msg
6 F2 options.msg
7 F3 general.msg
8 F4 param.msg
9 F5 rescue.msg
10 label linux
11 kernel vmlinuz
12 append
ks=nfs:192.168.0.20:/pub/ks.cfg  initrd=initrd.img
13 label text
……

7.安裝kickstart配置ks.cfg

 #cd /mnt/ RedHat/RPMS/
#rpm –ivh *kickstart*
 #system-config-kickstart   (
在圖形界面終端打此命令
)
 
根據需要配置ks.cfg.
/目錄下創建pub目錄,將ks.cfg移動到此目錄下。
#
chmod 707 /pub/ks.cfg     //修改ks.cfg權限

ks.cfg文件,最終配置示例如下:

#Generated by Kickstart Configurator

#platform=x86, AMD64, or Intel EM64T

#System  language

lang en_SG

#Language modules to install

langsupport zh_CN en_US --default=en_SG

#System keyboard

keyboard us

#System mouse

mouse

#Sytem timezone

timezone Asia/Shanghai

#Root password

rootpw --iscrypted $1$2qm1.E7d$/p/NGomGdh00jvBeeIyLR.

#Reboot after installation

reboot

#Install OS instead of upgrade

install

#Use NFS installation Media

nfs --server=192.168.0.20  --dir=/mnt

#System bootloader configuration

bootloader --location=mbr

#Clear the Master Boot Record

zerombr yes

#Partition clearing information

clearpart --all --initlabel

#Disk partitioning information

clearpart --all --initlabel

#Disk partitioning information

part swap --size 512

part /boot --fstype ext3 --size 100

part / --fstype ext3 --size 1 --grow

#System authorization infomation

auth  --useshadow  --enablemd5

#Network information

network --bootproto=dhcp --device=eth0

#Firewall configuration

firewall --disabled

#XWindows configuration information

xconfig --depth=8 --resolution=640x480 --defaultdesktop=GNOME

#Package install information

%packages --resolvedeps

@ base-x                  //最小化安裝  (如果用kickstart不能選擇安裝包時需要手動添加)

如果是RHEL5需要手動添加一行

key --skip          //跳過安裝序列號

8.配置nfs並啓動服務

#vi /etc/exports         //添加兩行記錄

/mnt    *(ro)

/pub     *(ro)

#service nfs start

9.爲保證實驗一次成功,將所有服務都重新啓動一下

#service dhcpd restart

#service xinetd restart

#service nfs restart

10.在一客戶端上進行測試(server在同一局域網內).

提示:客戶端在確定domain namehost name時會等幾分鐘時間請耐心等待

※成功標誌:能順利跳過各項設置到開始自動安裝軟件包代表服務器配置沒問題(客戶端只能有個開機動作)

 

    


 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章