PXE遠程網絡裝機及CentOS 7無人值守安裝

在大規模的Linux應用環境中,好比Web羣集、分佈式計算等,服務器每每並不配備光驅設備,在這種狀況下,如何給成百上千臺服務器裸機快速安裝系統呢?傳統的USB光驅、移動硬盤等安裝方式很顯然已經力不從心了,那麼就須要——PXE網絡裝機及無人值守安裝。linux

PXE網絡裝機及無人值守安裝能夠實現的功能有:
1.規模化:同時裝配多臺服務器;
2.自動化:安裝系統、配置各類服務;
3.遠程實現:不須要光盤、U盤等安裝介質。vim

如圖:
PXE遠程網絡裝機及CentOS 7無人值守安裝centos

關於Windows PXE網絡裝機能夠參考博文:Windows server 2016部署WDS服務bash

若要搭建PXE網絡體系,必需要知足的條件有:
1.客戶機的網卡支持PXE協議(集成BOOTROM芯片),且主板支持網絡引導;
2.網絡中必須有一臺DHCP服務器爲客戶機分配IP地址、指定引導文件的位置;
3.服務器經過TFTP(簡單文件傳輸協議)提供引導鏡像文件的下載。

其中第一個條件是硬件要求,目前絕大部分服務器和PC都可以提供此支持,只需在BIOS設置中容許從Network或LAN啓動便可。服務器

知足條件後,咱們來實現這種功能!網絡

PXE遠程安裝服務的基本部署過程:

本次試驗PXE遠程安裝服務器集成了CentOS 7 安裝源、FTP服務、TFTP服務、DHCP服務,可以像客戶機(裸機)發送PXE引導程序、Linux內核、啓動菜單等數據,以及提供安裝文件。app

PXE遠程安裝服務的部署過程大體能夠分紅這樣幾步:
1.安裝FTP服務並準備CentOS 7 安裝源;
2.安裝TFTP服務並啓動;
3.準備Linux內核、初始化鏡像文件;
4.準備PXE引導程序、啓動菜單文件;
5.安裝並啓動DHCP服務;
6.驗證PXE網絡安裝效果。

接下來咱們開始分步驟完成實驗,並實現理想的效果!dom

1.安裝FTP服務並準備CentOS 7 安裝源

經過搭建本地YUM的方式安裝一系列服務。若是有朋友對YUM的搭建不明白能夠參考博文:YUM倉庫配置及命令詳解socket

[root@localhost ~]# mount /dev/cdrom /mnt
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# rm -rf *
[root@localhost yum.repos.d]# vim a.repo
[a]
baseurl=file:///mnt
gpgcheck=0
[root@localhost ~]# yum -y install vsftpd
//安裝FTP服務
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# cp -rf /mnt/* /var/ftp/centos7/
//將光盤中的東西所有複製到FTP服務科匿名訪問的目錄中
[root@localhost ~]# systemctl start vsftpd
//啓動FTP服務

2.安裝TFTP服務並啓動

TFTP(簡單文件傳輸協議)服務所使用UDP的69端口。分佈式

[root@localhost ~]# yum -y install tftp-server
//安裝TFTP服務
[root@localhost ~]# vim /etc/xinetd.d/tftp
//修改TFTP服務的配置文件,內容以下:
service tftp
{
        socket_type             = dgram
        protocol                = udp                          //TFTP服務採用udp傳輸協議
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot             //指定TFTP服務的根目錄
        disable                 = no                           //這項必須改爲「no」
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
[root@localhost ~]# systemctl start tftp
//啓動TFTP服務

3.準備Linux內核、初始化鏡像文件

用PXE網絡安裝的Linux內核、初始化文件能夠從CentOS 7系統光盤中得到,位於images/pxeboot/目錄下,分別是initrd.img和vmlinuz。將這兩個文件複製到TFTP服務的根目錄下。

[root@localhost ~]# cd /mnt/images/pxeboot/
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/

4.準備PXE引導程序、啓動菜單文件

用於PXE網絡安裝的引導程序爲pxelinux.0,由軟件包syslinux提供。所以須要先安裝syslinux。

[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/

啓動菜單來指導客戶機的引導過程,包括如何調用內核、如何加載初始化鏡像。默認的啓動菜單文件爲default,應放置在TFTP根目錄下的pxelinux.cfg子目錄下,典型的啓動菜單引導文件需手動建立,能夠參考如下內容:

[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
//在TFTP服務根目錄下建立pxelinux.cfg目錄
[root@localhost ~]# cd /var/lib/tftpboot/pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default
//建立default菜單文件。文件內容以下:
default auto
prompt 1 
label auto 
        kernel vmlinuz 
        append initrd=initrd.img method=ftp://192.168.1.1/centos7
label linux text 
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://192.168.1.1/centos7

label linux rescue  
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.1.1/centos7
其中個配置項的含義:
default:用來指定默認入口名稱;
prompt:用來決定是否須要等待用戶控制(1表示須要,0表示不須要);
label:用來定義並分割啓動項,文件中有三種引導模式:
分別是圖形安裝(默認)、文本安裝、救援模式;
kernel:用來指定所需內核;
append:追加配置項;
initrd:用來指定系統初始化文件;
method:用來指定安裝方式;
引導入口的個數及內容根據實際狀況自定義。

5.安裝並啓動DHCP服務

因爲PXE客戶機一般是還沒有安裝系統的裸機,所以爲了與服務器取得聯繫並正確的下載相關引導文件,須要預先配置DHCP服務器來自動分配地址並告知引導文件位置。

[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
//複製DHCP服務的模板
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
//修改DHCP服務的配置文件,主要內容以下:
                   ………………           //省略部份內容
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.200;
  option domain-name-servers 192.168.1.1;
  option domain-name "internal.example.org";
  option routers 192.168.1.1;
  option broadcast-address 192.168.1.255;
  default-lease-time 600;
  max-lease-time 7200;
  next-server 192.168.1.1;                         //指定TFTP服務器的地址
  filename "pxelinux.0";                              //指定PXE引導程序的文件名
}
                   ………………           //省略部份內容
[root@localhost ~]# systemctl start dhcpd

6.驗證PXE網絡安裝效果

對於新購買的裸機,通常都不須要設置(若是是從新裝系統,建議則應調BIOS爲網絡啓動)。若使用vmware虛擬機進行測試,虛擬機內存至少須要2GB,不然在啓動會報錯。

PXE遠程網絡裝機及CentOS 7無人值守安裝
耐心等待,幾分鐘後:
PXE遠程網絡裝機及CentOS 7無人值守安裝
出現這種狀況,表示部署成功!

經過PXE遠程安裝服務,雖然,安裝介質已經再也不受限於光盤、移動硬盤、U盤等設備,大大提升了系統安裝的靈活想可是,安裝期間仍然須要人爲的進行交互式的操做,當須要批量安裝時很是的不方便。那麼就須要使用到——「Kickstart無人值守安裝」

實現Kickstart無人值守安裝

實現Kickstart無人值守安裝部署過程:
1.配置應答文件並保存;
2.啓動自動應答文件;
3.驗證無人值守安裝。

接下來咱們開始分步驟完成,並實現理想的效果!

1.配置應答文件並保存

要想圖形化的建立應答文件,則須要安裝system-config-kickstart工具,若是對配置文件很是熟悉的話,也能夠直接修改系統自動建立的無人安裝配置文件/root/anaconda-ks.cfg。本次案例安裝system-config-kickstart工具,圖形化的編輯配置文件。

[root@localhost ~]# yum -y install system-config-kickstart
//安裝system-config-kickstart工具,安裝完成以後:

PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝

[root@localhost ~]# vim /var/ftp/ks.cfg 
//查看剛纔經過圖形化編輯的應答文件
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$3uZeSVnX$FYsU4y8y/qqEWA66Wuysg1
# Use network installation
url --url="ftp://192.168.1.1/centos7"
# System language
lang zh_CN
# Firewall configuration
firewall --disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled

# Network information
network  --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part swap --asprimary --fstype="swap" --size=2048
part / --asprimary --fstype="xfs" --grow --size=1

%post --interpreter=/bin/bash
rm -rf /etc/yum.repos.d/*
cd /etc/yum.repos.d/
echo -e "[a]"  >> a.repo
echo -e "baseurl=ftp://192.168.1.1/centos7" >> a.repo
echo -e "gpgcheck=0" >> a.repo

%end

不過剛纔已經說明了,還缺一個選項——「軟件包選擇」,須要本身手動添加幾行配置項,在末尾添加便可,添加內容以下:

%packages
@^minimal
%end
//這三項的意思就是最小安裝
%packages
@^gnome-desktop-environment
%end
//這三項的意思是桌面安裝

固然也能夠參考/root/anaconda-ks.cfg文件,文件中%packages到%end之間都是配置選項,每行一個配置選項,任意選擇!
你們能夠不通過圖形化編輯,直接複製配置文件!效果也可實現!

2.啓動自動應答文件

[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 
default auto
prompt 0
label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.1.1/centos7 ks=ftp://192.168.1.1/ks.cfg

將prompt 改成0,表示不等待用戶選擇。添加ks引導參數,並制定URL訪問路徑。

3.驗證無人值守安裝

PXE遠程網絡裝機及CentOS 7無人值守安裝
PXE遠程網絡裝機及CentOS 7無人值守安裝實驗完成!

相關文章
相關標籤/搜索