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,如需轉載請自行聯系原作者