1. 程式人生 > >用系統為centos6的主機,搭建PXE服務器,實現批量安裝centos6,7系統

用系統為centos6的主機,搭建PXE服務器,實現批量安裝centos6,7系統

tex art ase pre 復制 tor log 文件名 vml

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/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 600

label 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.cfg

label manual
menu label ^Manual install CentOS 7
kernel kernel7/vmlinuz
append initrd=kernel7/initrd.img

inst.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系統