天天看點

linux8.1下使用PXE批量裝機

PXE安裝優點,這種安裝系統的方式可以不受光驅,CD光牒以及一些外部裝置的限制,還可以做到無人值守,大大減輕了運維人員的工作負荷,像在一些主機數量龐大的機房進行批量安裝,PXE将是你不二的選擇。

首先給大家一個圖來了解PXE的工作方式

linux8.1下使用PXE批量裝機

1. pxe自啟動 請求IP,

2. dhcp 根據配置檔案,回應IP 并告知tftp位置 與pxelinux.0的位置

3. 通過pxelinux.0擷取另3個檔案的位置  向Tftp請求下載下傳 pxelinux/default vmlinuz imitrd.img

4. 通過default 得知ks.cfg位置,請求ks.cfg檔案,

5. 通過ks.cfg得知OS存放伺服器位置,

6. 下載下傳OS安裝系統軟體包

是以我們要搭建三個服務

-----以下是搭建dhcp服務(還是一樣的就是多兩個參數)----

yum install dhcp-server -y

vi /etc/dhcp/dhcpd.conf

default-lease-time 600;

max-lease-time 7200;

log-facility local7;

subnet 192.168.80.0 netmask 255.255.255.0 {

        option routers                  192.168.80.111;

        option subnet-mask              255.255.255.0;

        option time-offset              -18000;

        range dynamic-bootp 192.168.80.60 192.168.80.100;

        next-server 192.168.80.110;//告訴用戶端TFTP的位置

        filename "pxelinux.0";//告訴用戶端下載下傳的檔案名

}

systemctl start dhcpd     //啟動服務

----以下是搭建ftp伺服器,用來提供CD光牒安裝----

yum install -y vsftpd

mount /dev/cdrom /var/ftp/pub       //把CD光牒挂載到匿名使用者的家目錄下去

讓所有人都可以來通路

vi /etc/vsftpd/vsftpd.conf  //編輯主配置檔案

anonymous_enable=yes  //開啟匿名使用者通路

systemctl start vsftpd   //啟動服務

----搭建tftp伺服器,并可以使用systemctl來管理它----

yum install -y tftp-server tftp syslinux-tftpboot    //安裝服務

yum -y install xinetd

vi /etc/xinetd.d/tftp

service tftp

{

        socket_type = dgram

        protocol    = udp

        wait        = yes

        user        = root

        server      = /usr/sbin/in.tftpd

        server_args = -s /var/lib/tftpboot  //指定tftp的工作目錄

        disable     = no     //重點是吧yes改成no,讓他啟用

        per_source  = 11

        cps         = 100 2

        flags       = IPv4

}

systemctl start tftp

----------以下是安裝啟動引導菜單相關的軟體包-----

yum -y install syslinux

cp -rf /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

把pxelinux.0放到tftp的家目錄裡去

cp /var/ftp/pub/isolinux/{boot.cat,boot.msg,grub.conf,isolinux.bin,splash.png,TRANS.TBL,vesamenu.c32,ldlinux.c32} /var/lib/tftpboot

把我們挂載CD光牒裡的isolinux裡的鏡像的引導檔案放到tftp的家目錄裡去

cp /var/ftp/pub/images/pxeboot/initrd.img  /var/lib/tftpboot/

initrd.img是一個小的映象

cp /var/ftp/pub/images/pxeboot/vmlinuz     /var/lib/tftpboot/

vmlinuz是可引導的、壓縮的核心引導檔案

也一并拷入到tftp的工作目錄下

mkdir /var/lib/tftpboot/pxelinux.cfg

所有的配置檔案都放在啟動伺服器的 /tftpboot/pxelinux.cfg/目錄

cp /var/ftp/pub/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

建立一個名為default的檔案,就是pxelinux.0的預設配置檔案,

vi /var/lib/tftpboot/pxelinux.cfg/default

default linux  //修改

prompt 1

timeout 1

display boot.msg

.........

label linux

  kernel vmlinuz

  append initrd=initrd.img text ks=ftp://192.168.80.110/ks.cfg    //後面去掉

這是linux的模闆,我使用的是ftp的方式的

ks放在了ftp伺服器(也就是自己)裡ks.cfg

----------------以下是生成應答檔案的方式(無人值守)--------------

我們裝機完成後會生成一個檔案

在root的家目錄下 anaconda-ks.cfg

裡面有你裝這個伺服器時候的配置

我們裝系統的時候是通路ftp,是以要把這個檔案拷貝到/var/ftp/裡面來

cp ~/anaconda-ks.cfg /var/ftp/ks.cfg (改名為ks.cfg)

因為在default裡面定義了,他就會通路ftp來找這個檔案

chmod +r /var/ftp/ks.cfg  (一定要給權限!!!)

----重點改的就是以下-----

# Use CDROM installation media

install   //之前本來是cdrom,改成install

url --url="ftp://192.168.80.80/pub" //設定成通過ftp去通路CD光牒,和上面一行在一起

repo --name="AppStream" --baseurl=file:///run/install/repo/AppStream

找到上面這一行一定要删除,因為之前安裝是使用CD光牒安裝,是以裡面記錄了,現在我們使用的是ftp去通路CD光牒,不删除就出現倉庫源設定錯誤(也就是沖突了)

這樣你裸機開機就可以自動裝系統了

(但是這個系統和你目前是一樣的,root密碼和測試賬号都是一樣的)

1. pxe自啟動 請求IP,

2. dhcp 根據配置檔案,回應IP 并告知tftp位置 與pxelinux.0的位置

3. 通過pxelinux.0擷取另3個檔案的位置  向Tftp請求下載下傳 pxelinux/default vmlinuz imitrd.img

4. 通過default 得知ks.cfg位置,請求ks.cfg檔案,

5. 通過ks.cfg得知OS存放伺服器位置,

6. 下載下傳OS安裝系統軟體包

繼續閱讀