一、原理
這是基於C/S架構的方式,Client嵌入到網卡的ROM芯片中,Server需要單獨配置,包括DHCP和TFTP。開機後選擇PXE,client發起廣播連接請求,DCHP-Server響應分配IP和系統啓動鏡像位置,client拿到地址,然後單播請求Server系統啓動鏡像pxelinux.0,獲得後,引導啓動安裝過程,請求內核和根文件系統,然後進入正式安裝過程。安裝過程同時結合Linux kickstart安裝,包含http配置等
本實例目的
實現自動安裝rhel5.3_32 rhel5.5_64 rhel6.2_64
按數字1 引導 rhel5.3_32 ;按數字2引導rhel5.5_64 ;按數字3引導rhel6.2_64
需要安裝的工具
1.syslinux 2.kickstart
需要安裝的服務
1.dhcp 2.http 3.tftp-server
準備工作:
1、服務器IP192.168.8.64 系統版本rhel6.4_64
2、用xshell遠程連接192.168.8.64
3、 上傳rhel6.4_64.iso 、 rhel5.3_32.iso、rhel6.5_64.iso 、rhel6.2_64.iso 鏡像到/data1
4、配置本地yum源
[root@localhost ~]# mount -o loop /data1/rhel-server-6.4-x86_64-dvd.iso /mnt/
[root@localhost ~]# vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///mnt/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
5、關閉防火牆
[root@localhost ~]# service iptables stop
[root@localhost ~]# setenforce 0
開始部署安裝:
1.安裝syslinux和kickstart
[root@localhost ~]# yum install syslinux -y
[root@localhost ~]# yum install system-config-kickstart -y
2.安裝dhcp服務
[root@localhost ~]# yum -y install dhcp
配置dhcpd.conf
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf #紅色區域爲重點代碼
啓動dhcpd服務
[root@localhost ~]# service dhcpd start
3.安裝httpd
[root@localhost ~]# yum -y install httpd
啓動httpd
[root@localhost ~]# service httpd start
在/var/ww/html新建3個目錄:rhel5u3_32 rhel5u5_64 rhel6u2_64
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# mkdir rhel5u3_32
[root@localhost html]# mkdir rhel5u5_64
[root@localhost html]# mkdir rhel6u2_64
分別掛載鏡像到各自目錄
[root@localhost html]# mount -o loop /data1/rhel5.3_32.iso /var/www/html/rhel5u3_32
[root@localhost html]# mount -o loop /data1/rhel5.5_64.iso /var/www/html/rhel5u5_64
[root@localhost html]# mount -o loop /data1/rhel6.2_64.iso /var/www/html/rhel6u2_64
4.安裝tftp-server
[root@localhost ~]# yum -y install tftp-server
tftp-server是以xinetd方式管理,更改配置文件
server_args是tftp的目錄,本次定義在 /tftpboot ,將disable改爲no,否則無法啓動。
[root@localhost ~]# vim /etc/xinetd.d/tftp #紅色區域爲重點代碼
啓動xinetd服務
[root@localhost ~]# service xinetd start
配置PXE啓動文件
[root@localhost ~]# mkdir /tftpboot
[root@localhost ~]# mkdir /tftpboot/pxelinux.cfg
[root@localhost ~]# mkdir /tftpboot/rhel5u3_32
[root@localhost ~]# mkdir /tftpboot/rhel5u5_64
[root@localhost ~]# mkdir /tftpboot/rhel6u2_64
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
[root@localhost ~]# cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[root@localhost ~]# cp /var/www/html/rhel5u3_32/isolinux/initrd.img /tftpboot/rhel5u3_32
[root@localhost ~]# cp /var/www/html/rhel5u3_32/isolinux/vmlinuz /tftpboot/rhel5u3_32
[root@localhost ~]# cp /var/www/html/rhel5u5_64/isolinux/initrd.img /tftpboot/rhel5u5_64
[root@localhost ~]# cp /var/www/html/rhel5u5_64/isolinux/vmlinuz /tftpboot/rhel5u5_64
[root@localhost ~]# cp /var/www/html/rhel6u2_64/isolinux/initrd.img /tftpboot/rhel6u2_64
[root@localhost ~]# cp /var/www/html/rhel6u2_64/isolinux/vmlinuz /tftpboot/rhel6u2_64
root@localhost ~]# chmod 644 /tftpboot/pxelinux.cfg/default
[root@localhost ~]# vim /tftpboot/pxelinux.cfg/default #紅色區域爲重點代碼
[root@localhost ~]#vim /tftpboot/boot.msg #紅色區域爲重點代碼
5.獲取3個系統版本的ks文件
在http根目錄下新建ks目錄
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# mkdir ks
獲取ks文件(格式 爲.cfg),以rhel6u2_64系統爲例
在正在運行的rhel6u2_64系統上用 yum 安裝 system-config-kickstart
[root@localhost ~]# yum install system-config-kickstart -y
[root@localhost ~]# system-config-kickstart
加添配置時鐘,root密碼
安裝模式 選擇HTTP ,填寫地址192.168.8.64 和 HTTP目錄
默認
劃分磁盤
添加安裝腳本(沒有不添加)
保存,名字爲 rhel6u2_64.cfg ,並把這個文件放到192.168.8.64的/var/www/html/ks 下
注:rhel5u3_32也是在正在運行的rhel5.3_32系統運行system-config-kickstart,經過圖形界面配置等,保存
爲rhel5u3_32.cfg ,傳到/var/www/html/rhel5u3_32
rhel5u5_64也是在正在運行的rhel5.5_64系統運行system-config-kickstart,經過圖形界面配置等,保存
爲rhel5u5_64.cfg ,傳到/var/www/html/rhel5u5_64
6.客戶機測試使用網絡安裝
1.第一種方法
使用測試電腦(192.168.8.0網段與192.168.8.64相通),開機使用網絡啓動
2.第二種方法
使用測試電腦(192.168.8.0網段與192.168.8.64相通)在測試電腦上安裝vmware,vmware網卡橋接
開啓虛擬機, F2 進入BIOS設置爲使用網絡啓動
自動獲取IP和列表, 如:要安裝rhel5u5_64,輸入數字2 回車
總結:1.1)如果自動獲取IP超時,查看服務端dhcpd是否開啓服務
2)可能IP已被佔用,增加range的ip範圍
2. 1)如果TFTP超時,查看服務器xinetd是否開啓服務
2)可能防火牆沒有關閉,service iptables stop ; setenforce 0