1. iptables -F
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/sr1 /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.新建一個虛擬機,添加僅主機模式的網卡(和服務器一定要在同一個網絡)。進行測試,效果如下: