首頁 > 軟體

CentOS Kickstart及引導映象檔案製作

2020-06-16 17:15:13

1. 什麼是kickstart安裝?

kickstart是RedHat/CentOS/Fedora等系統實現無人值守自動化安裝的一種安裝方式,系統管理員可將安裝過程中需要設定的所有引數整合於一個kickstart檔案中,而後在系統安裝時,安裝程式通過讀取事先給定的這個kickstart檔案自動化地完成設定並安裝完成。

anaconda的設定方式有以下兩種:

(1)互動式設定;

(2)通過讀取事先給定的組態檔事先自動完成設定,這個組態檔就是kickstart檔案,它遵循特定的語法格式。

在前面一篇文章--《圖形/文字介面安裝CentOS 6.8系統詳解http://www.linuxidc.com/Linux/2017-05/143710.htm已經介紹了使用anaconda應用程式來實現互動式安裝CentOS系統,接下來要介紹的是通過kickstart這個組態檔來實現無人值守安裝系統。在介紹之前需要先了解一下anaconda程式的安裝引導選項。

2. anaconda安裝引導選項

anaconda的安裝引導選項可在boot介面(即bootloader引導時的選單介面)由使用者給定,由bootloader傳遞把引數傳遞給核心,再由核心把引數傳遞給anaconda應用程式;也可以直接在bootloader的組態檔中寫入引數直接傳遞給核心,以光碟引導為例,可以在isolinux/isolinux.cfg組態檔中通過"append"的方式把引數追加給label中定義的核心。

anaconda的安裝引導選項有:

text:文字安裝方式;

method:手動指定使用的安裝方法;

與網路相關的引導選項:安裝時的網路屬性設定;

    ip=IPADDR:安裝時的ip地址;

netmask=MASK:子網掩碼;

gateway=GW:預設閘道器;

dns=DNS_SERVER_IP:安裝過程需要解析主機名時會用到;

ifname=NAME:MAC_ADDR:指定以上網路屬性設定應用於哪個網路介面之上;

遠端存取功能相關的引導選項:

    vnc:可以讓遠端使用者幫助設定各個安裝選項;

vncpassword:設定vnc密碼;

指明kickstart檔案的位置:

    ks=

需要注意的是,kickstart檔案可以來自光碟(映象)、硬碟或網路,因此其指定方式各有不同。

光碟:

ks=cdrom:/PATH/TO/KICKSTART_FILE

硬碟:

ks=hd:/DEVICE/PATH/TO/KICKSTART_FILE

網路:

HTTP伺服器:ks=http://HOST[:PORT]/PATH/TO/KICKSTART_FILE

HTTPS伺服器:ks=https://HOST[:PORT]/PATH/TO/KICKSTART_FILE

FTP伺服器:ks=ftp://HOST[:PORT]/PATH/TO/KICKSTART_FILE

3. kickstart檔案的格式

kickstart檔案包括三個部分:

(1)命令段

(2)程式包段

(3)指令碼段

(1)命令段:

作用:指定各種安裝前的設定選項,如鍵盤型別等。

選項型別:必備命令+可選命令

必備命令:

authconfig:認證方式設定

範例:

authconfig --enableshadow --passalgo=sha512

bootloader:定義bootloader的安裝位置及相關設定

範例:

bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"

keyboard:設定鍵盤型別

範例:

keyboard us

lang:設定語言型別

範例:

lang en_US.UTF-8

part:分割區布局

範例:

part /boot --fstype=ext4 --size=500

part pv.008002 --grow --size=1

分割區相關的其他命令:

clearpart:清除分割區

範例:

clearpart --none --drives=sda

volgroup:建立卷組

範例:

volgroup VolGroup --pesize=4096 pv.008002

logvol:建立邏輯卷

範例:

logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=5120

0

rootpw:設定管理員密碼

範例:

rootpw  --iscrypted $6$2V70fZkSFMrqldev$Qf950j2Ip5vxhEoOmlZgKHnySkBBMA6T5tBQz5jPiAurItpei

663xVkRfrdWZPESgQu33q3E.CShfkY4MCtjK.

生成加密密碼的方式:

~]# openssl  passwd  -1  -salt  `openssl  rand  -hex  4`

timezone:時區

範例:

timezone Asia/Shanghai

可選命令:

install或upgrade:安裝或升級

text:安裝介面型別,text為TUI,預設為GUI

network:設定網路介面

範例:

network --onboot yes --device eth0 --bootproto dhcp --noipv6

firewall:防火牆

範例:

firewall --disabled

selinux:SELinux

範例:

selinux --disabled

halt、poweroff或reboot:定義安裝完成之後的行為,如關機、重新啟動

user:安裝完成後為系統建立新使用者

repo:指明安裝時使用的repository(安裝源)

範例:

repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100

url:指明安裝時使用的repository(安裝源),但為url格式

範例:

url --url=http://172.16.0.1/cobbler/ks_mirror/CentOS-6.7-x86_64/

注意:要設定好相關網路屬性,例如區域網通訊需要ip和netmask,如果要存取網際網路還需要gateway

和dns。

(2)程式包段

作用:指定要安裝的程式包、包組以及不安裝的程式包。

表示方式:

%packages:程式包段的開始;

@group_name:要安裝的包組;

package:要安裝的程式包;

-package:不安裝的程式包;

%end:程式包段的結束;

需要注意的是,如果一個程式包被其他指定要安裝的程式包所依賴,那麼就算指明該程式不安裝,系統也會自動安裝這個程式包。

(3)指令碼段

包括安裝前要執行的指令碼和安裝後要執行的指令碼。

①安裝前要執行的指令碼:%pre

指令碼格式:

%pre

...

%end

執行環境:執行於安裝媒介上的微型Linux系統環境。

②安裝後要執行的指令碼:%post

指令碼格式:

%post

...

%end

4. 製作kickstart檔案的方式

(1)直接手動編輯,可以依據某個模板來進行修改;

(2)使用kickstart檔案建立工具:system-config-kickstart進行設定,同樣可以匯入某個模板並修改之。

這裡介紹使用kickstart檔案建立工具:system-config-kickstart來客製化kickstart:

首選確保system-config-kickstart已經安裝,如果沒有安裝可以使用yum安裝:

[root@localhost ~]# rpm -q system-config-kickstart

system-config-kickstart-2.8.6.6-1.el6.noarch    //顯示已安裝;

在命令列上執行system-config-kickstart命令即可啟動視窗介面:


[root@localhost ~]# system-config-kickstart &

開啟視窗如圖:

更多詳情見請繼續閱讀下一頁的精彩內容http://www.linuxidc.com/Linux/2017-05/143714p2.htm


IT145.com E-mail:sddin#qq.com