2021-05-12 14:32:11
CentOS Kickstart及引導映象檔案製作
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
相關文章