linux基於網絡的批量安裝

準備:

DHCP服務器

TFTP服務器

FTP服務器

Kickstart文件

擁有PXE ROM芯片,支持網絡啓動的客戶端,即要安裝系統的裸機

Linux鏡像文件

這裏用一臺主機同時提供DHCP,TFTP,FTP三種服務,kickstart也放在這臺服務器上。

原理

遠程客戶端計算機啓動,由於BIOS設置了網卡啓動,所以網卡PXE ROM中的程序被調入內存執行。首先,客戶端在網絡中尋找DHCP服務器,然後請求一個IP地址;同時DHCP服務器聯繫到TFTP服務器爲此客戶端發送一個bootstrap(引導程序)。客戶端收到bootstrap(文件pxelinux.0)後執行,bootstrap會請求TFTP傳送bootstrap的配置文件(pxelinux.cfg)。收到後讀配置文件。根據配置文件內容和客戶情況,客戶端請求TFTP傳送內核映象文件(vmlinuz)和根文件系統文件(initrd.img)。最後啓動內核。這就是一個完整的pxe構建過程。然而要使網卡啓動後再繼續網絡安裝系統,則最後還需要FTP服務將系統所需安裝文件放置FTP相應目錄中進行傳輸安裝。

安裝

#yum –disablerepo=\* --enablerepo=c5-mediainstall dchp* tftp* ftp* system-config-kickstart*

配置服務

安裝完DHCP後,其配置文件爲空。我們可以根據其文檔中的樣本修改

[root@pxe ~]# cat/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample >> /etc/dhcpd.conf

然後修改其內容

[root@pxe ~]# vi /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
allow booting; #新添加
allow bootp; #新添加
subnet 192.168.128.0 netmask 255.255.255.0{
 
# --- default gateway
       option routers                 192.168.128.1;
       option subnet-mask             255.255.255.0;
 
       option nis-domain              "domain.org";
       option domain-name             "domain.org";
#      option domain-name-servers     192.168.128.1;  #註釋此行,以加快啓動
 
       option time-offset             -18000; # Eastern Standard Time
#      option ntp-servers             192.168.1.1;
#      option netbios-name-servers    192.168.1.1;
# --- Selects point-to-point node (defaultis hybrid). Don't change this unless
# -- you understand Netbios very well
#      option netbios-node-type 2;
 
       range dynamic-bootp 192.168.128.150 192.168.128.200;
       filename "/pxelinux.0"; #指定啓動文件
       next-server 192.168.128.111; #指定服務器IP
       default-lease-time 21600;
       max-lease-time 43200;
 
       # we want the nameserver to appear at a fixed address
       host ns {
                next-server marvin.redhat.com;
                hardware ethernet12:34:56:78:AB:CD;
                fixed-address 207.175.42.254;
       }
}


修改TFTP的配置

[root@pxe ~]# cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves filesusing the trivial file transfer \
#      protocol.  The tftp protocol isoften used to boot diskless \
#      workstations, download configuration files to network-aware printers, \
#      and to start the installation process for some operating systems.
service tftp
{
       socket_type             = dgram
       protocol                = udp
       wait                    = yes
       user                    = root
       server                  = /usr/sbin/in.tftpd
       server_args             = -s/tftpboot
       disable                 = no    #將yes改爲no
       per_source              = 11
       cps                     = 100 2
       flags                   = IPv4
}


FTP使用匿名登錄,使用默認目錄/var/ftp,配置不做修改,只需將linux鏡像文件放在/var/ftp下。

[root@pxe ~]# ls /var/ftp/cdrom/
CentOS images    RELEASE-NOTES-cs       RELEASE-NOTES-de.html  RELEASE-NOTES-en_US       RELEASE-NOTES-es.html  RELEASE-NOTES-ja       RELEASE-NOTES-nl.html     RELEASE-NOTES-ro       RPM-GPG-KEY-beta
EULA   isolinux RELEASE-NOTES-cs.html RELEASE-NOTES-en      RELEASE-NOTES-en_US.html RELEASE-NOTES-fr      RELEASE-NOTES-ja.html RELEASE-NOTES-pt_BR      RELEASE-NOTES-ro.html RPM-GPG-KEY-CentOS-5
GPL    NOTES     RELEASE-NOTES-de       RELEASE-NOTES-en.html  RELEASE-NOTES-es          RELEASE-NOTES-fr.html  RELEASE-NOTES-nl       RELEASE-NOTES-pt_BR.html  repodata               TRANS.TBL
 

在TFTP服務安裝完後,會創建一個/tftpboot目錄,這個目錄便是我們用來放置bootstrap引導程序(pxelinux.0),bootstrap配置文件(default),內核映像(vmlinuz)和文件系統文件(initrd.img)的。這裏我們需要先創建一個pxelinux.cfg目錄,並將default文件放在其下。

[root@pxe ~]# ll /tftpboot/
總計 9828
-rw-r--r-- 1 root root 8056614 04-18 00:57initrd.img
-rw-r--r-- 1 root root   13148 04-19 20:22 pxelinux.0
drwxr-xr-x 2 root root    4096 04-20 18:40 pxelinux.cfg
-rw-r--r-- 1 root root 1953660 04-19 20:21vmlinuz
[root@pxe ~]# ll /tftpboot/pxelinux.cfg/
總計 8
-rwxr-xr-x 1 root root 396 04-19 22:03default


上述四個文件的來源:

[root@pxe ~]# cp/usr/lib/syslinux/pxelinux.0 /tftpboot/
[root@pxe ~]# cd /var/ftp/cdrom/isolinux/
[root@pxe isolinux]# pwd
/var/ftp/cdrom/isolinux
[root@pxe isolinux]# cp initrd.imgisolinux.cfg vmlinuz /tftpboot/

這裏的isolinux.cfg就是我們的default文件,我們需要更名並放在pxelinux.cfg目錄下

[root@pxe tftpboot]# mkdir pxelinux.cfg/
[root@pxe tftpboot]# mv isolinux.cfgpxelinux.cfg/
[root@pxe tftpboot]# cd pxelinux.cfg/
[root@pxe pxelinux.cfg]# mv isolinux.cfgdefault
 

default文件我們還需要一些設置

[root@pxe pxelinux.cfg]# vi default
default linux
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
 kernel vmlinuz
  # ks=ftp://192.168.128.111/ks.cfg指向的是ftp服務器/var/ftp下的文件,這個文件就是linux安裝的應答文件,即我們前面說的Kickstart文件
 append ks=ftp://192.168.128.111/ks.cfg initrd=initrd.img
label text
 kernel vmlinuz
 append initrd=initrd.img text
label ks
 kernel vmlinuz
 append ks initrd=initrd.img
label local
 localboot 1
label memtest86
 kernel memtest
 append -

kickstart文件的製作可以參考Kickstart的配置和使用

最後要將ks.cfg文件放在/var/ftp下

[root@pxe ftp]# ll
總計 24
drwxr-xr-x 7 root root 4096 04-19 23:04cdrom
-rw-r--r-- 1 root root 1399 04-20 20:41ks.cfg
drwxr-xr-x 2 root root 4096 04-20 20:43 pub

 

啓動服務

啓動DHCP服務

[root@pxe ftp]# service dhcpd start

啓動TFTP服務

[root@pxe ftp]# service xinetd start
啓動FTP服務

[root@pxe ftp]# service vsftpd start


至此,服務器配置完成。

將裸機選擇從網絡啓動即可。


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