1. 程式人生 > >PXE+Kickstart實現自動裝機

PXE+Kickstart實現自動裝機

一、搭建PXE伺服器

PXE伺服器——預啟動執行環境——指示客戶端計算機直接從網路介面啟動、執行或安裝作業系統,而不需要燒錄CD/DVD或使用某個物理介質,它可以減輕你網路中多臺機器同時安裝Linux發行版的工作。

1.安裝並配置DNSMASQ伺服器(給客戶機分配靜態IP)

#yum install dnsmasq

DNSMASQ的預設的主配置檔案dnsmasq.conf位於/etc目錄中,參考配置如下:                                                

interface=eth0,lo

#bind-interfaces                                                                                        

domain=centos7.lan

# DHCP range-leases                                                                                     

dhcp-range=eth0,192.168.0.50,192.168.0.150,255.255.255.0,48h

# PXE                                                                                                   

dhcp-boot=pxelinux.0,pxeserver,192.168.0.1

# Gateway                                                                                               

dhcp-option=3,192.168.0.101

# DNS                                                                                                   

dhcp-option=6,192.168.0.101,8.8.8.8

server=8.8.4.4

# Broadcast Address                                                                                     

dhcp-option=28,10.0.0.255

# NTP Server                                                                                            

dhcp-option=42,0.0.0.0

pxe-prompt="press f8 for menu.",5

pxe-service=x86PC,"install from 192.168.0.1",pxelinux

enable-tftp

tftp-root=/var/lib/tftpboot

2.安裝TFTP-Server並加入SYSLINUX載入啟動器

#yum install tftp-server

#yum install syslinux

PXE啟動載入器檔案位於/usr/share/syslinux,須要拷貝該路徑下的所有內容到TFTP伺服器路徑下。

#cp-r /usr/share/syslinux/* /var/lib/tftpboot

3.設定PXE伺服器配置檔案

PXE伺服器從位於pxelinux.cfg資料夾中一組指定的檔案中讀取配置,該資料夾必須位於DNSMASQ主配置檔案中tftp-root宣告指定的目錄中(參考配置中為tftp-root=/var/lib/tftpboot)。下面建立需要的目錄pxelinux.cfg,然後新增default檔案。

#mkdir/var/lib/tftpboot/pxelinux.cfg

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

default的參考配置如下:

default menu.c32(預設載入選單 改為1可以預設進入選項1)

prompt 0

timeout300

ONTIMEOUT local

menu title ########## PXE Boot Menu ##########

label 1

menu label ^1)InstallCentOS7 x64 withLocalRepo

kernel centos7/vmlinuz

append initrd=centos7/initrd.img method=ftp://192.168.0.1/pub devfs=nomount

label 2

menu label ^4)Bootfromlocal drive

CentOS 7啟動映象(kernel和initrd)位於名為centos7的目錄,該目錄是/var/lib/tftpboot目錄的相對路徑(其絕對路徑為/var/lib/tftpboot/centos7),而安裝器倉庫位於可通過FTP協議訪問的192.168.0.1/pub網路位置中——在本例中,這些倉庫位於本地,因此IP地址和PXE伺服器地址相同。

4.新增CentOS 7啟動映象到PXE伺服器

掛載預先下載好的映象檔案。建立centos7目錄並將CentOS 7 的可啟動的 kernel和initrd映像檔案從掛載位置拷貝到centos7資料夾。

#mkdir/var/lib/tftpboot/centos7

#cp/mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7

#cp/mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos7

5.建立CentOS 7本地映象安裝源

可以通過多種協議設定安裝源映象,如HTTP、HTTPS或NFS。這裡使用FTP協議。

#yum install vsftpd

#cp-r /mnt/* /var/ftp/pub/

# chmod -R 755 /var/ftp/pub

6.啟動程序並關閉防火牆

# systemctl start dnsmasq

# systemctl status dnsmasq

# systemctl start vsftpd

# systemctl status vsftpd

# systemctl enable dnsmasq

# systemctl enable vsftpd

# systemctl disable firewalld

# systemctl stop firewalld

最好測試一下FTP安裝源網路路徑,在瀏覽器輸入ftp://192.168.1.20/pub

至此PXE伺服器搭建完畢。可以開一臺虛機測試。

qemu-img create -f qcow2 /home/test.qcow2 10G

virt-install --name test --vcpus 1 --memory 2000 --cpu --disk path=/home/test.qcow2,format=qcow2, --network bridge=br0,model=virtio --pxe --autostart

PS:PXE和客戶機之間要有網橋連線

臨時建立:

ip link add br0 type bridge

ip a add 192.168.0.101/24 dev br0

ip link set br0 up

永久建立:

# cat /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0

TYPE=Bridge

BOOTPROTO=none

IPADDR=192.168.0.101

PREFIX=24

ONBOOT=yes

DELAY=0

二、PXE的基礎上用kickstart實現自動安裝

Kickstart 檔案本身是一個純文字檔案,包含了可作為安裝指令的關鍵字。通過Kickstart工具配置安裝應答檔案,自動完成安裝過程的各種設定,從而無需手動干預,提高網路裝機效率。

1.安裝kickstart

yum install system-config-kickstart

2.配置ks.cfg

推薦用來生成 Kickstart 檔案的方法是在系統中首先執行一次手動安裝。安裝完成後,安裝程式中的所有選擇都會儲存到名為 anaconda-ks. cfg 的檔案中,該檔案位於所安裝系統的 /root/ 目錄下。然後可以複製這個檔案,根據需要進行修改,並在以後的安裝中使用得到的配置檔案。

其中,必須要改的是安裝方式,參考如下

加入reboot,可以在安裝完畢後自動重啟

可以在安裝完成後、第一次重啟前立即新增要在該系統中執行的命令。這部分內容必須在 Kickstart 的最後,同時必須用 %post 命令開頭,以%end 結尾。

安裝centos6.5時出現了unsupported hardware detect的警告,需要手動選擇安裝才能繼續,加入一行unsupported _hard ware可以解決此問題


3.將kickstart和PXE結合

#cp ks.cfg /var/ftp/pub/

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

append initrd=centos7/initrd.img method=ftp://192.168.0.1/pub devfs=nomount

修改為