PXE遠程自動安裝操作系統
一、PXE的工作原理
PXE:基於Client/Server的網絡模式,支持遠程主機通過網絡從遠端服務器下載映像,並由此支持通過網絡啟動操作系統;PXE可以引導和安裝Windows,linux等多種操作系統。
PXE工作原理:
1、Client向PXE Server上的DHCP發送IP地址請求消息,DHCP檢測Client是否合法(主要是檢測Client的網卡MAC地址),如果合法則返回Client的IP地址,同時將啟動文件pxelinux.0的位置信息一並傳送給Client
2、Client向PXE Server上的TFTP發送獲取pxelinux.0請求消息,TFTP接收到消息之後再向Client發送pxelinux.0大小信息,試探Client是否滿意,當TFTP收到Client發回的同意大小信息之後,正式向Client發送pxelinux.0
3、Client執行接收到的pxelinux.0文件
4、Client向TFTP Server發送針對本機的配置信息文件(在TFTP 服務的pxelinux.cfg目錄下),TFTP將配置文件發回Client,繼而Client根據配置文件執行後續操作。
5、Client向TFTP發送Linux內核請求信息,TFTP接收到消息之後將內核文件發送給Client
6、Client向TFTP發送根文件請求信息,TFTP接收到消息之後返回Linux根文件系統
7、Client啟動Linux內核
8、Client下載安裝源文件,讀取自動化安裝腳本
註意:如果要是用PXE遠程安裝操作系統,網卡必須支持PXE(即網卡中包含tftp的客戶端)
二、PXE實現遠程安裝Linux操作系統
1、實驗環境:
1)centos6或7
2)準備一張或多張系統盤(centos)
2、基礎組件的安裝和配置
1)需要安裝的rpm包
- yum install -y tftp-server syslinux dhcp httpd
2)配置tftp—server
1、配置光盤源
- vim /etc/yum.repos.d/localrepo.repo
- [localrepo]
- name=localrepo
- baseurl=file:///mnt
- enabled=1
- gpgcheck=0
2、掛載光盤
- mount /dev/sr0 /mnt
3、復制以下文件到指定目錄
- mkdir /var/lib/tftpboot/pxelinux.cfg/
- cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/ #啟動文件和啟動菜單文件
- cp /mnt/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/ #內核和rootfs
- cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #菜單配置文件
4、修改菜單文件(以下為示例,實際情況自行修改)
- default menu.c32 #這裏要改成menu.c32,因為我們復制的是menu.c32文件
- timeout 600
- display boot.msg
- menu separator # insert an empty line
- label linux
- menu label ^Install CentOS 7
- kernel vmlinuz
- append initrd=initrd.img ks=http://192.168.13.1/ksdir/ks7-mini.cfg
- menu separator # insert an empty line
- label local
- menu label Boot from ^local drive
- menu default
- localboot 0xffff
5、當前目錄的目錄結構
- .
- ├── initrd.img
- ├── menu.c32
- ├── pxelinux.0
- ├── pxelinux.cfg
- │ └── default
- └── vmlinuz
3)配置dhcp
- vim /etc/dhcp/dhcpd.conf
- default-lease-time 7200; #默認租期時間
- max-lease-time 7200; #最大租期時間
- log-facility local7; #記錄到系統日誌的級別
- subnet 192.168.30.0 netmask 255.255.255.0 {
- range 192.168.30.1 192.168.30.50;
- filename "pxelinux.0"; #指定系統啟動文件
- next-server 192.168.30.200; #指定tftp-server的ip地址
- }
4)配置ks應答文件
配置ks應答文件可以手動修改/root/anaconda-ks.cfg 文件,其中的選項,可以參照紅帽官方安裝手冊,也可以通過kickstart快速配置(但是需要圖形化,配置簡單),這裏我們使用第二種方式來配置,一下是配置步驟
第一步:安裝kickstart
- yum install system-config-kickstart
註意:kickstart依賴圖形,所以在安裝kickstart的時候會安裝非常多的依賴包,不要在生產的服務器上安裝,我建議在自己的虛擬機上安裝,並使用終端的x11來啟動圖形,生成完我們需要的應答文件之後將應答文件拷貝到指定機器的/var/www/html/ksdir/下面。
第二步:使用X11轉發來實現在當前windows系統打開kickstart
在我們的虛擬機服務器端安裝xorg-x11-xauth包
- yum install -y xorg-x11-xauth
打開虛擬機服務器端ssh中的”X11Forwarding”選項
- vim /etc/ssh/sshd.conf
- X11Forwarding yes
在我們的windows上安裝xmanager
開啟
輸入虛擬機服務器端的信息,命令填寫”system-config-kickstart”,如下圖
點擊運行,使用kickstart來配置應答文件。如下圖,配置需要的應答選項
、
將生成的文件拷貝到/var/www/html/ksdir/ks7-mini.cfg
第三部:掛載光盤鏡像到”/var/www/html/c7″,並啟動服務
- mount /dev/sr0 /var/www/html/c7
- systemctl restart httpd
PXE遠程自動安裝操作系統