配置ks.cfg實現自動安裝過程

luchao669發表於2018-05-21

Linux安裝詳解-配置ks.cfg實現自動安裝過程

linux安裝大致可以分為2個階段

第一階段:anaconda

第二階段:installinstall階段系統會按照anaconda階段設定的引數自動安裝,這裡主要說的是anaconda階段,此階段是linux的預安裝環境,提供linux安裝選項的一個介面,可以將它比作是window中的PE環境

anaconda有兩種模式:互動式和非互動式

互動式就和普通安裝一樣,按照提示選擇選項一步步的安裝

非互動式則通過讀取kickstart檔案的配置,進行自動安裝,這和window中的無人值守安裝差不多的,這個檔案即是ks.cfg檔案(相當於window中的wi2k3.sif應答檔案)

而在安裝linux過程中,獲取ks.cfg檔案的方式有多種,如直接在cdrom中獲取,常見的形式還有http,ftp,nfs等方式

格式有三種:

cdrom和硬碟

ks=cdrom:/dir/ks.cfg(硬碟的話把cdrom換成hd即可,下面的類似)

http和ftp

ks=http://domain.com/dir/ks.cfg

NFS

ks=nfs:domain.com:/dir/ks.cfg

三種格式主要區分在於後面的斜槓,這裡要注意區分

在使用ks.cfg之前,需要先引導啟動環境

引導方式有很多,cdrom,usb,PXE等。

在引導進入anaconda後,即可通過讀取ks.cfg來進行系統的自動安裝

這裡開始說說kickstart檔案的大致內容

ks.cfg檔案組成大致分為3段

1.命令段:

鍵盤型別,語言,安裝方式等系統的配置,有必選項和可選項,如果缺少某項必選項,安裝時會中斷並提示使用者選擇此項的選項

2.軟體包段:

%packages

@groupname:指定安裝的包組

package_name:指定安裝的包

-package_name:指定不安裝的包

在安裝過程中預設安裝的軟體包,安裝軟體時會自動分析依賴關係。

3.指令碼段(可選):

%pre:預安裝指令碼(由於只依賴於啟動映象,支援的命令很少)

%post:後安裝指令碼(基本支援所有命令)

而具體的ks.cfg檔案的配置,我們只需要在已經安裝好的linux的root家目錄找到anaconda_ks.cfg(這個ks檔案就是在安裝linux後,根據使用者的安裝選項自動生成的)

下面的是一個樣例

(系統是CentOS-6.2-i386-minimal,所以配置樣例比較精簡)

.# Kickstart file automatically generated by anaconda.

.#version=DEVEL

install #表示是安裝,而不是升級

text #文字方式安裝

cdrom #安裝方式,如果是網路安裝的話可以寫成 url ––url ftp://192.168.1.254/dir 或者 nfs –server=192.168.0.241 –dir=/centosinstall

key –skip #這個是另外新增的,如果是RedHat的系統,會要求輸入key,這裡配置為跳過,如果不配置安裝時會停在那裡要求使用者輸入key

lang en_US.UTF-8 #語言

keyboard us #鍵盤樣式

network –onboot no –device eth0 –noipv4 –noipv6 #網路配置 配置具體引數樣例:network –onboot yes –bootproto=static –ip=192.168.1.1 –netmask=255.255.255.0 其他閘道器,DNS等格式和ifcfg-ethx的方式一樣

rootpw –iscrypted $6$PEJ49S7OkrNra3UM #管理員密碼,是加密過的 要是使用不加密的方式則這樣寫:rootpw 123456

firewall –service=ssh #開啟防火牆,並開啟ssh埠

authconfig –enableshadow –passalgo=sha512 #使用者認證和密碼加密方式

selinux –enforcing #強制開啟selinux

timezone –utc Etc/GMT+8 #時區設定

zerombr yes #清空磁碟的mbr

bootloader –location=mbr –driveorder=sda #載入程式相關引數

.# The following is the partition information you requested
.# Note that any partitions you deleted are not expressed
.# here so unless you clear all partitions first, this is
.# not guaranteed to work

clearpart –all –initlabel #初始化磁碟

part / –fstype=ext4 –size=18000 #開始分割槽
part swap –grow –size=1024
repo –name=”CentOS” –baseurl=cdrom:sr0 –cost=100

reboot

%packages –nobase #安裝的軟體包,這裡由於我安裝的是最小mini版,所以只安裝了核心軟體包組
@core

%post #後安裝指令碼(這裡是另外新增的,原來檔案中沒有)
id lustlost &>; /dev/null || useradd lustlost #檢查是否有lustlost使用者,如果沒有則新增
echo 123456 | passwd –stdin lustlost #配置密碼

cat >> /etc/yum.repos.d/base.repo << eof
[base]
name=baseserver
baseurl=http://192.168.1.254/yum
gpgcheck=0
enable=1
eof #這裡在安裝系統成功後執行指令碼自動配置一個yum源,其他指令碼可以按照需要定義

%end


相關文章