天天看點

DHCP+TFTP+PXE自動網絡引導安裝Linux作業系統

DHCP+TFTP+PXE自動網絡引導Linux+NFS/FTP/HTTP Push多個Linux作業系統

原理:

1)用戶端PXE網卡啟動

2)從DHCP伺服器獲得IP

3)從TFTP伺服器上下載下傳pxelinux.0、default

4)根據配置檔案default指定的vmlinuz、initrd.img啟動系統核心,并下載下傳指定的ks.cfg檔案

5)跟據ks.cfg去(HTTP/FTP/NFS)伺服器下載下傳RPM包并安裝系統

6)完成安裝

·DHCP:

[root@rhel6 ~]# cat /etc/dhcp/dhcpd.conf

ddns-update-style none;

option routers 192.168.1.119;

option subnet-mask 255.255.255.0;

option domain-name "xfcy.org";

option domain-name-servers 192.168.1.119;

default-lease-time 21600;

max-lease-time 43200;

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.101 192.168.1.200;

#  TFTP Server

filename "pxelinux.0";

next-server rhel6.xfcy.org;

host vm.xfcy.org {

hardware ethernet 00:0c:29:c0:a7:99;

fixed-address 192.168.1.19;

}

[root@rhel6 tftpboot]# /etc/init.d/dhcpd restart

Shutting down dhcpd:          [ OK ]

Starting dhcpd:            [ OK ]

<a href="http://blog.51cto.com/attachment/201211/154055797.png" target="_blank"></a>

·TFPT:

[root@rhel6 ~]# rpm -qa | egrep 'tftp|xinetd'

tftp-0.49-7.el6.x86_64

xinetd-2.3.14-33.el6.x86_64

tftp-server-0.49-7.el6.x86_64

[root@rhel6 ~]# cat /etc/xinetd.d/tftp

# default: off

service tftp

{

socket_type       = dgram

protocol        = udp

wait          = yes

user          = root

server         = /usr/sbin/in.tftpd

server_args       = -s /var/lib/tftpboot

disable         = no

per_source       = 11

cps           = 100 2

flags          = IPv4

[root@rhel6 ~]# chkconfig xinetd on

[root@rhel6 ~]# /etc/init.d/xinetd restart

Stopping xinetd:             [ OK ]

Starting xinetd:             [ OK ]

[root@rhel6 ~]# netstat -lnup | grep :69

udp  0  0 0.0.0.0:69  0.0.0.0:*    2751/xinetd

[root@rhel6 ~]# yum -y install syslinux

[root@rhel6 ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg/

[root@rhel6 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

[root@rhel6 ~]# cp /media/isolinux/initrd.img /var/lib/tftpboot/

[root@rhel6 ~]# cp /media/isolinux/vmlinuz /var/lib/tftpboot/

[root@rhel6 ~]# cp /media/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

[root@rhel6 ~]# ls -R /var/lib/tftpboot/

/var/lib/tftpboot/:

boot.msg initrd.img pxelinux.0 pxelinux.cfg vmlinuz

/var/lib/tftpboot/pxelinux.cfg:

default

[root@rhel6 ~]# vi /var/lib/tftpboot/pxelinux.cfg/default

default rhel6_nfs

prompt 1                #顯示"boot: " 提示進行選擇以下lable

timeout 100               #10s 的逾時後進入default所定義的lable

display boot.msg            #以boot.msg進行文本提示(與以下的*.msg檔案結合,非必選項)

F1 boot.msg

F2 options.msg

F3 general.msg

F4 param.msg

F5 rescue.msg

#可通過以下3種方式下載下傳ks.cfg檔案,通過default定義lable或在timeout時間之内選擇lable即可

label rhel6_nfs             #通過NFS方式

kernel vmlinuz

append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks=nfs:192.168.1.119:/var/ftp/pub/ks.cfg

label rhel6_ftp             #通過FTP方式

append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks=ftp://192.168.1.119/pub/ks.cfg

label rhel6_http            #通過HTTP方式

append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks=http://192.168.1.119/pub/ks.cfg

label rescue              #用于rescue模式

append load_ramdisk=1 initrd=initrd.img rescue

<a href="http://blog.51cto.com/attachment/201211/154324985.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201211/154430246.png" target="_blank"></a>

·NFS:

[root@rhel6 ~]# ls /var/ftp/pub/

images ks.cf  Packages  repodata  Server

[root@rhel6 ~]# cat /etc/exports

/var/ftp/pub  192.168.1.0/24(rw,sync,no_root_squash)  #共享路徑必須與default檔案定義的ks.cfg路徑一緻

[root@rhel6 ~]# /etc/init.d/rpcbind status

rpcbind (pid 1418) is running...

[root@rhel6 ~]# /etc/init.d/nfs start

Starting NFS services:         [ OK ]

Starting NFS quotas:          [ OK ]

Starting NFS daemon:          [ OK ]

Starting NFS mountd:          [ OK ]

[root@rhel6 ~]# showmount -e

Export list for rhel6.xfcy.org:

/var/ftp/pub 192.168.1.0/24

·HTTS:

[root@rhel6 ~]# cat /etc/httpd/conf/httpd.conf | grep DocumentRoot

DocumentRoot "/var/ftp"#共享路徑必須與default檔案定義的ks.cfg路徑一緻

[root@rhel6 ~]# /etc/init.d/httpd start

Starting httpd:            [ OK ]

·Kickstart

使用紅帽的Kickstart配置程式可以通過圖形界面建立或直接修改Kickstart檔案。

# yum install system-config-kickstart

該配置程式主要包含11個子產品:

基本設定、安裝方式、引導器設定、分區資訊、網絡配置、認證、防火牆配置、顯示配置、軟體包、Pre腳本、Post腳本

<a href="http://blog.51cto.com/attachment/201211/154923999.png" target="_blank"></a>

     本文轉自Vnimos51CTO部落格,原文連結:http://blog.51cto.com/vnimos/1063154,如需轉載請自行聯系原作者

繼續閱讀