Kickstart 全自動安裝部署RHEL 7.0

studywell發表於2016-01-07
蒐集整理自:



一、簡介

1.1 什麼是PXE

PXE(Pre-boot Execution Environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網路模式,支援工作站透過網路從遠端服 務器下載映像,並由此支援透過網路啟動作業系統,在啟動過程中,終端要求伺服器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟體包到本機記憶體中執行,由這個啟動軟體包完成終端基本軟體設定,從而引導預先安裝在伺服器中的終端作業系統。

嚴格來說,PXE 並不是一種安裝方式,而是一種引導方式。進行 PXE 安裝的必要條件是在要安裝的計算機中必須包含一個 PXE 支援的網路卡(NIC),即網路卡中必須要有 PXE Client。PXE 協議可以使計算機透過網路啟動。此協議分為 Client端和 Server 端,而PXE Client則在網路卡的 ROM 中。當計算機引導時,BIOS 把 PXE Client 調入記憶體中執行,然後由 PXE Client 將放置在遠端的檔案透過網路下載到本地執行。執行 PXE 協議需要設定 DHCP 伺服器和 TFTP 伺服器。DHCP 伺服器會給 PXE Client(將要安裝系統的主機)分配一個 IP 地址,由於是給 PXE Client 分配 IP 地址,所以在配置 DHCP 伺服器時需要增加相應的 PXE 設定。此外,在 PXE Client 的 ROM 中,已經存在了 TFTP Client,那麼它就可以透過 TFTP 協議到 TFTP Server 上下載所需的檔案了。

PXE的工作過程:

1. PXE Client 從自己的PXE網路卡啟動,向本網路中的DHCP伺服器索取IP;

2. DHCP 伺服器返回分配給客戶機的IP 以及PXE檔案的放置位置(該檔案一般是放在一臺TFTP伺服器上) ;

3. PXE Client 向本網路中的TFTP伺服器索取pxelinux.0 檔案;

4. PXE Client 取得pxelinux.0 檔案後之執行該檔案;

5. 根據pxelinux.0 的執行結果,透過TFTP伺服器載入核心和檔案系統 ;

6. 進入安裝畫面, 此時可以透過選擇HTTP、FTP、NFS 方式之一進行安裝;

詳細工作流程,請參考下面這幅圖:
Kickstart 全自動安裝部署RHEL 7.0

1.2 什麼是Kickstart

Kickstart是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄典型的需要人工干預填寫的各種引數,並生成一個名為ks.cfg的文 件。如果在安裝過程中(不只侷限於生成Kickstart安裝檔案的機器)出現要填寫引數的情況,安裝程式首先會去查詢Kickstart生成的檔案,如 果找到合適的引數,就採用所找到的引數;如果沒有找到合適的引數,便需要安裝者手工干預了。所以,如果Kickstart檔案涵蓋了安裝過程中可能出現的 所有需要填寫的引數,那麼安裝者完全可以只告訴安裝程式從何處取ks.cfg檔案,然後就去忙自己的事情。等安裝完畢,安裝程式會根據ks.cfg中的設 置重啟系統,並結束安裝。

PXE+Kickstart 無人值守安裝作業系統完整過程如下:

Kickstart 全自動安裝部署RHEL 7.0



-----------------------------------分割線--------------------------------------------------

系統環境

實驗環境:VMware Workstation 11

系統平臺:RHEL7

網路模式:LAN區段

DHCP / TFTP IP:192.168.153.130

HTTP / FTP / NFS IP:192.168.153.130

防火牆已關閉/iptables: Firewall is not running.

SELINUX=disabled

-----------------------------------分割線--------------------------------------------------

前期準備

所需要用到的服務:DHCP、TFTP、VSFTP

配置yum倉庫,掛載光碟映象

#vim /etc/yum.repos.d/rhel7.repo

[rhel7]

name=rhel7

basurel=file:///mnt

enabled=1

gpgcheck=0

將光碟掛載到/mnt中

#mount /dev/cdrom /mnt

-----------------------------------分割線--------------------------------------------------

配置DHCP

安裝DHCP服務

# yum -y install dhcp

修改/etc/dhcp/dhcpd.conf 配置檔案,內容如下:

subnet 192.168.153.0 netmask 255.255.255.0 {          #所屬網段及掩碼; 

range 192.168.153.100 192.168.153.120;                    #IP地址池範圍; 

option domain-name "linuxidc.seagate.com";

option routers 192.168.153.130;                                  #路由器IP,可以寫閘道器IP; 

option broadcast-address 192.168.153.255;

next-server 192.168.153.130;                              #TFTP Server 的IP地址;

filename "pxelinux.0";                                        #pxelinux 啟動檔案位置;

default-lease-time 600;

max-lease-time 7200;

}

啟動DHCP服務

#systemctl enable dhcpd.service

#systemctl start dhcpd.service

-----------------------------------分割線--------------------------------------------------


配置TFTP

安裝TFTP

# yum install tftp-server –y    //此步驟會安裝兩個包,一個是tftp-server另一個是xinetd。

修改/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

      disable                = no      #把這行改成no即可;

      per_source              = 11

      cps                    = 100 2

      flags                  = IPv4

}

啟動xinetd服務

#systemctl enable xinetd.service

#systemctl start xinetd.service

-----------------------------------分割線--------------------------------------------------

配置vsftp

安裝vsftp

#yum -y install vsftpd

啟動vsftpd服務

#systemctl start vsftpd.service

#systemctl enable vsftpd.service

建立iso資料夾目錄,用來存放光碟軟體包

#mkdir /var/ftp/iso

複製光碟中所有檔案到iso資料夾中,   可不用複製,直接將光碟掛載到/var/ftp/iso/目錄下;

#cp -rf /mnt/* /var/ftp/iso/

-----------------------------------分割線--------------------------------------------------

配置PXE啟動所需要的檔案

#yum -y install syslinux

說明:syslinux是一個功能強大的引導載入程式,而且相容各種介質。更加確切地說:SYSLINUX是一個小型的Linux作業系統,它的目的是簡化首次安裝Linux的時間,並建立修護或其它特殊用途的啟動盤。

複製啟動檔案到/var/lib/tftpboot裡

#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

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

#cd /mnt/isolinux/

#cp -rf initrd.img vmlinuz vesamenu.c32 boot.msg /var/lib/tftpboot/

#cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
授予寫的許可權
chmod u+x default

檢查

[root@localhost tftpboot]# pwd
/var/lib/tftpboot
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vesamenu.c32  vmlinuz boot.msg

[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# ls
default

-----------------------------------分割線--------------------------------------------------

生成ks.cfg 檔案

ks.cfg是kickstart安裝配置檔案,系統就是按照ks.cfg來安裝的。我們將在後面配置他

安裝Kickstart

#yum -y install system-config-kickstart

在桌面環境下配置Kickstart

啟動X Windows 環境

#startx

配置Kickstart

#system-config-kickstart


Kickstart 全自動安裝部署RHEL 7.0
Kickstart 全自動安裝部署RHEL 7.0
Kickstart 全自動安裝部署RHEL 7.0Kickstart 全自動安裝部署RHEL 7.0Kickstart 全自動安裝部署RHEL 7.0Kickstart 全自動安裝部署RHEL 7.0
Kickstart 全自動安裝部署RHEL 7.0


Kickstart 全自動安裝部署RHEL 7.0
Kickstart 全自動安裝部署RHEL 7.0
儲存在/root/下,字尾不要動

root目錄下有個anaconda-ks.cfg檔案,我們進去把安裝軟體指令碼複製到我們們剛才建立的那個ks.cfg中

#vim /root/anaconda-ks.cfg

........

%packages

@base

@core

@desktop-debugging

@dial-up

@fonts

@gnome-desktop

@guest-agents

@guest-desktop-agents

@input-methods

@internet-browser

@kde-desktop

@multimedia

@print-client

@x11

%end

把anaconda-ks.cfg檔案最下方的指令碼貼上到我們們的ks.cfg中

#vim /root/ks.cfg

把上面一串@的所有內容都貼上進去,包括兩個%哪行。

把ks檔案複製到/var/ftp/裡面

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


可選:新增key --skip //跳過輸入序列號環節
<注意是兩個"-">
[root@rhce ~]# cat ks.cfg
新增下列行
key --skip  


編輯/var/lib/tftpboot/pxelinux.cfg/default檔案,新增如下內容:

label rhel                                                    
  menu label ^Install RHEL7.0
  menu default
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=ftp://192.168.153.130/iso inst.ks=ftp://192.168.153.130/ks.cfg quiet

-----------------------------------分割線--------------------------------------------------

檢查
檢查SELinux是否關閉

#setenforce 0    //關閉SELinux

檢查防火牆,開放dhcp,ftp,tftp服務,或者關閉防火牆


注:這裡也可以透過systemctl stop firewall來關閉防火牆

檢查所有服務是否正常啟動


-----------------------------------分割線--------------------------------------------------

安裝測試



到此配置結束, 啟動需要安裝系統的機器. 修改BIOS以網路卡方式啟動.

如果DHCP配置有問題,或PXE找不到安裝檔案的問題,
請檢視/var/log/message 或仔細核對目錄是否一致.
檢視包安裝情況:tail -fn 100 /var/log/xferlog



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-1973274/,如需轉載,請註明出處,否則將追究法律責任。

相關文章