用系統為centos6的主機,搭建PXE服務器,實現批量安裝centos6,7系統
setenforce 0 臨時關掉selinux,清掉防火墻
永久生效更改配置文件:vim /etc/sysconfig/selinux
chkconfig iptables off
2. yum -y install httpd dhcp tftp-server
安裝http服務用於構建鏡像文件的yum倉庫
安裝dhcp服務,搭建dhcp服務器,為客戶端分配ip地址
安裝tftp服務,搭建tftp服務器,準備系統啟動的引導文件,如pxelinux.0 menu32 內核以及,磁盤映像文件
3. 構建yum倉庫
service httpd start 開啟http服務 ss -tnlp |grep -w 80 查看80服務的端口是否打開 echo ‘test‘ > /var/www/html/index.html 用瀏覽器打開httpd服務器的ip地址,測試能否打開 mkdir -p /var/www/html/centos/7/os/x86_64 mkdir -p /var/www/html/centos/6/os/x86_64 該虛擬機可以添加兩個光盤驅動,分別將對應的鏡像文件,一一掛載到上面兩個相對應的目錄 mount /dev/sr0 /var/www/html/centos/7/os/x86_64 mount /dev/sr0 /var/www/html/centos/7/os/x86_64 到此,鏡像文件的yum倉庫已經構建好了,可以打開網頁,測試一下。 http://192.168.190.146/centos/6/os/x86_64/ http://192.168.190.146/centos/7/os/x86_64/6 生產環境中,http服務器要保證有足夠的容量存放,鏡像文件,或者創建軟連接到存儲上。
4. 準備ks引導文件
在6上面使用服務器(安裝了圖形化),使用system-config-kickstart 命令可以編輯ks文件,設定分區大小,密碼,要安裝的包組,初始化環境腳本,等等最後保存為ks6.cfg文件。
同理,在7的服務器上面使用同樣的命令制作ks.cfg文件。在編輯時,無法選擇rpm包組,解決方法為:將本機的本地倉庫文件名,即【base】更改為 【development】後,再次執行 system-config-kickstart 即可 ksvalidator ks7.cfg 檢查ks文件的語法
將準備好的ks文件,放到pxe服務器的/var/www/html/,下面
5. 搭建tftp服務器
tftp 為非獨立服務,centos6上面由Xinetd服務監聽端口69 centos7上面由systemd監聽
service xinetd start
chkconfig tftp on 開啟tftp服務
ss -unlp |grep -w 69 查看69端口是否開啟
7. 準備系統引導文件
一般的系統引導文件放在tftp服務器的工作目錄 /var/lib/tftpboot/ [root@centos6 tftpboot]#tree . ├── kernel6 │ ├── initrd.img │ └── vmlinuz ├── kernel7 │ ├── initrd.img │ └── vmlinuz ├── menu.c32 ├── pxelinux.0 └── pxelinux.cfg └── default 準備好相應的啟動文件。 cp /var/www/html/centos/7/os/x86_64/isolinux/initrd.img . cp /var/www/html/centos/7/os/x86_64/isolinux/vmlinuz . cp /var/www/html/centos/6/os/x86_64/isolinux/{initrd.img,vmlinuz} . rpm -ql syslinux 查找引導文件,沒有需要安裝 syslinux pxelinux.0 menu32 兩個文件復制到工作目錄下 mkdir pxelinux.cfg 復制光盤鏡像裏面的isolinux.cfg 重命名為default文件 編輯default文件
default menu.c32
timeout 600label local
menu label Boot from ^local drive
menu default
localboot 0xffff
menu title http://192/168.190.146/
label linux
menu label ^AutoInstall CentOS 7
kernel kernel7/vmlinuz
append initrd=kernel7/initrd.img ks=http://192.168.190.146/ksdir/ks7.cfglabel manual
menu label ^Manual install CentOS 7
kernel kernel7/vmlinuz
append initrd=kernel7/initrd.imginst.repo=http://192.168.190.146/centos/7/os/x86_64/
label linux
menu label ^AutoInstall CentOS 6
kernel kernel6/vmlinuz
append initrd=kernel6/initrd.img ks=http://192.168.190.146/ksdir/ks6.cfg
label manual
menu label ^Manual install CentOS 6
kernel kernel6/vmlinuz
append initrd=kernel6/initrd.img
repo=http://192.168.190.146/centos/6/os/x86_64/
7. 搭建dhcp服務器
首先要配置dhcp服務的配置文件,否則啟動dhcp服務會失敗
vim /etc/dhcp/dhcpd.conf
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
直接用dhcp的模板配置文件覆蓋原來的配置文件,在基礎上進行修改
vim /etc/dhcp/dhcpd.conf
service dhcpd start 開啟dhcp服務
ss -unlp |grep dhcpd 查看dhcp服務端的端口67 是否開啟
到此,dhcp服務器已搭建完畢
8.新建一個虛擬機,添加僅主機模式的網卡(和服務器一定要在同一個網絡)。進行測試,效果如下:
用系統為centos6的主機,搭建PXE服務器,實現批量安裝centos6,7系統