CentOS 6.9下PXE+Kickstart無人值守安裝操做系統附常見問題

CentOS 6.9下PXE+Kickstart無人值守安裝操做系統html

1、簡介linux

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 上下載所需的文件了。dom

PXE的工做過程:socket

  1. PXE Client 從本身的PXE網卡啓動,向本網絡中的DHCP服務器索取IP;編輯器

  2. DHCP 服務器返回分配給客戶機的IP 以及PXE文件的放置位置(該文件通常是放在一臺TFTP服務器上) ;ide

  3. PXE Client 向本網絡中的TFTP服務器索取pxelinux.0 文件;工具

  4. PXE Client 取得pxelinux.0 文件後之執行該文件;測試

  5. 根據pxelinux.0 的執行結果,經過TFTP服務器加載內核和文件系統 ;

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

詳細工做流程,請參考下面這幅圖:

1.2 什麼是Kickstart

Kickstart是一種無人值守的安裝方式。它的工做原理是在安裝過程當中記錄典型的須要人工干預填寫的各類參數,並生成一個名爲ks.cfg的文件。若是在安裝過程當中(不僅侷限於生成Kickstart安裝文件的機器)出現要填寫參數的狀況,安裝程序首先會去查找Kickstart生成的文件,若是找到合適的參數,就採用所找到的參數;若是沒有找到合適的參數,便須要安裝者手工干預了。因此,若是Kickstart文件涵蓋了安裝過程當中可能出現的全部須要填寫的參數,那麼安裝者徹底能夠只告訴安裝程序從何處取ks.cfg文件,而後就去忙本身的事情。等安裝完畢,安裝程序會根據ks.cfg中的設置重啓系統,並結束安裝。

PXE+Kickstart 無人值守安裝操做系統完整過程以下:

2、系統環境

實驗環境:VMware Workstation 10

系統平臺:CentOS release 6.9 (最小化安裝)

網絡模式:NAT模式(共享主機的IP地址)

DHCP / TFTP IP:192.168.111.130

HTTP / FTP / NFS IP:192.168.111.130

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

SELINUX=disabled

3、準備工做

生成ks.cfg 文件

一般,咱們在安裝操做系統的過程當中,須要大量的和服務器交互操做,爲了減小這個交互過程,kickstart就誕生了。使用這種kickstart,只需事先定義好一個Kickstart自動應答配置文件ks.cfg(一般存放在安裝服務器上),並讓安裝程序知道該配置文件的位置,在安裝過程當中安裝程序就能夠本身從該文件中讀取安裝配置,這樣就避免了在安裝過程當中屢次的人機交互,從而實現無人值守的自動化安裝。

生成kickstart配置文件的三種方法:

方法一、 每安裝好一臺Centos機器,Centos安裝程序都會建立一個kickstart配置文件,記錄你的真實安裝配置。若是你但願實現和某系統相似的安裝,能夠基於該系統的kickstart配置文件來生成你本身的kickstart配置文件。(生成的文件名字叫anaconda-ks.cfg位於/root/anaconda-ks.cfg)
方法二、Centos提供了一個圖形化的kickstart配置工具。在任何一個安裝好的Linux系統上運行該工具,就能夠很容易地建立你本身的kickstart配置文件。kickstart配置工具命令爲redhat-config-kickstart(RHEL3)或system-config-kickstart(RHEL4,RHEL5).網上有不少用CentOS桌面版生成ks文件的文章,若是有現成的系統就沒什麼可說。但沒有現成的,也沒有必要去用桌面版,命令行也很簡單。
方法三、閱讀kickstart配置文件的手冊。用任何一個文本編輯器均可以建立你本身的kickstart配置文件。
4、配置HTTP安裝方式

系統的安裝方式能夠選擇HTTP、FTP、 NFS,咱們這裏介紹HTTP方式的安裝,其餘兩種方式的安裝,你們能夠自行百度。

4.1 安裝並配置HTTP

yum install httpd –y

rpm -qa|grep httpd

開啓服務並設置開機啓動

/etc/init.d/httpd start

chkconfig --level 35 httpd on

4.2 加載ISO鏡像

在虛擬機中設置加載ISO鏡像。

將iso文件掛載至/mnt/cdrom.

4.3 複製光盤所有內容至http 的根目錄/var/www/html/ 下

cp -r /mnt/cdrom/ /var/www/html/

HTTP部分設置完畢。

5、配置TFTP

5.1 安裝tftp-server

yum install tftp-server –y

5.2 啓用tftp 服務

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
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
將disable 設置爲no

5.3 啓動tftp服務

由於tftp服務是掛載在超級進程xinetd 下的,因此經過啓動xinetd 來啓動tftp服務。

/etc/init.d/xinetd restart

9、測試安裝

自動化安裝系統配置完畢,下面啓動一臺新的機器進行測試,網絡鏈接模式選擇NAT模式。

在使用PXE+Kickstart無人值守安裝操做系統的時候
老是會出現一些意料以外的問題,如下給出一些我的的解決辦法:

1.TPTP can not open connection

此問題出現的時候,不少狀況是dhcp的配置存在問題。

subnet 192.168.174.0 netmask 255.255.255.0 { #提供DHCP服務的網段
range 192.168.174.3 192.168.174.251; #地址池
#option domain-name "internal.example.org"; #分配DNS域,因爲在虛擬機上建立,註釋
option routers 192.168.174.2; #網關
next-server 192.168.174.145; #tftp服務器地址
filename "pxelinux.0"; #PXE引導文件
default-lease-time 600; #默認租約時常
max-lease-time 7200; #最大租約時常
option domain-name-servers 192.168.1.1; #分配DNS地址,通常寫真實DNS地址,
}

此配置有幾個須要注意的地方:
option routers 192.168.174.2; #網關
next-server 192.168.174.145; #tftp服務器地址
此處的網關是VMware爲虛擬機提供的網關
使用VMware作實驗的時候,此時的虛擬機的tftp的服務器地址爲PXE的IP地址

2.Error down loading kickstart file

此處須要注意的是ks.cfg文件的權限問題。
通常狀況下,此處的權限問題需大於或者等於755.

3.Unable to retrieve

此處的問題仍是權限問題,安裝完成相關服務後
在/var/ftp下有pub目錄,把光盤文件直接掛在在此處。文件的權限大於或者等於755

4.the following problem occurred on line 42 of the kickstart file

對比之下,能夠發現,第42行除應爲「--ondrive」,可是一不當心寫成了「--oindriive」
這是因爲在編輯配置文件的時候不當心形成的,這個在之後須要注意

5.not enough free space on disks

此處的問題是在對磁盤進行分區的時候,分區的容量超出了整個虛擬機的20G的容量。原來的代碼:

從新計算後完成的代碼如圖:

6.unable to read package metadata

此問題主要是因爲ks.cfg文件配置的不正確,主要出現是在分區完成之後了
主要的緣由多是因爲打開了行代碼

repo開始的這段代碼須要註釋掉。固然,此處從新開機也ing不能解決問題了,次處修改完成後,須要長頭開始安裝

相關文章
相關標籤/搜索