1. 程式人生 > >架構師成長之路2.4-Kickstart檔案剖析

架構師成長之路2.4-Kickstart檔案剖析

點選返回架構師成長之路

架構師成長之路2.4-Kickstart檔案剖析

 kickstart檔案是一個簡單的文字檔案,它包含了一個專案列表,每個專案由一個關鍵字來識別。

建立kickstart檔案注意:

  • 每節必須按順序指定.除非特別申明,每節內的專案則不必按序排列.小節的順序為:

          命令部分,這裡應該包括必需的選項.
           %packages部分,這部分選擇需要安裝的軟體包.
           %pre和%post部分,這兩個部分可以按任何順序排列而且不是必需的.前者是預安裝指令碼,後者是系統安裝完成後指令碼

  • 不必需的專案可以被省略.
  • 如果忽略任何必需的專案,安裝程式會提示使用者輸入相關的專案的選擇,就象使用者在典型的安裝過程中所遇到的一樣.一旦使用者進行了選擇,安裝會以非互動的方式(unattended)繼續(除非找到另外一個沒有指定的專案).
  • 以井號("#")開頭的行被當作註釋行並被忽略.

kickstart 升級,下列專案是必需的:

  • 語言
  • 安裝方法
  • 裝置規格(如果這個裝置是在安裝過程中所需要的)
  • 鍵盤設定
  • upgrade 關鍵字
  • 引導裝載程式配置
  • 如果任何其他的專案被指定為upgrade,這些專案將被忽略(注意這包括了軟體包選擇).

以下為一個Centos7示列:

#version=DEVEL
install
auth --enableshadow --passalgo=sha512
text
lang en_US.UTF-8
keyboard --vckeymap=us --xlayouts='us'
network --onboot=on --device=ens33  --bootproto=dhcp --activate --ipv6=auto
rootpw newpassword
firewall --service=ssh
url --url=http://172.18.20.225/Centos7.5
selinux --disabled
timezone Asia/Shanghai --isUtc
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto"
zerombr
clearpart --none --initlabel
reboot
part /boot --fstype=ext4 --ondisk=sda --size=400
part swap  --ondisk=sda --size=4000
part / --fstype=ext4 --ondisk=sda --grow --size=200
 
%packages
@^minimal
@core
%end
 
%addon com_redhat_kdump --disable --reserve-mb='auto'
 
%end

kickstart選項指令段的說明:

【必須的選項】:

1.auth或者authconfig :驗證選項
    --useshadow或者--enableshadow啟用shadow檔案來驗證
    --passalgo=sha512使用sha512演算法
2.bootloader: 指定如何安裝載入程式,要求必須已選擇分割槽、已選擇載入程式、已選擇軟體包,如果沒選擇將會停止而不會詢問
    --location=mbr 指定載入程式的位置,預設為mbr,還可以指定none或者包含bootloader的引導塊所在分割槽
    --driveorder=sda 指定grub安裝在哪個分割槽以及指定尋找順序,--driverorder=sda sdc sdb
    --append="crashkernel=auto rhgb quiet" 指定核心引數
3.keyboard:指定鍵盤型別,一般使用美式鍵盤"keyboard us",新版的kickstart的格式有所變化,但也支援"keyboard us"這樣的老格式
4.lang:指定語言,如"lang en_US.UTF-8"5.rootpw:設定root使用者的密碼
    --iscrypted:使用加密密碼,可以使用MD5,SHA-256,sha-512等。
        如:rootpw  --iscrypted $6$kxEBpy0HqHiY2Tsx$FTAqbjHs6x0VruChfYKxVeKLlxPuY0LXK7RxAVdu3uUivGclMUEz.i4ARlsMpqe1bf379uEgWOSFqGtZxqrwg.
        其中SHA-512位的加密密碼在CentOS 6上可以使用"grub-crypt --sha-512"生成,CentOS7上可以使用python等工具來生成,如下:
        python -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'     
【可選的選項】:
1.selinux:設定selinux,值為enforcing,permissice,disable之一 2.autostep: 互動式,和interactive類似 3.interactive: 使用kickstart檔案指定的引數互動式安裝,但仍會給出每一步的選擇項,如果直接下一步就使用kickstart引數 4.cmdline:在完全非互動的命令列模式下進行安裝 5.driverdisk:指定驅動程式所在位置 drvierdisk --source= 6.firewall:設定firewall --disable禁用防火牆 7.firstboot: --disable:安裝後第一次啟動預設會給出很多需要手動配置的介面,禁用它 8.graphical:在圖形模式下根據kickstart執行安裝,預設該選項 9.text:文字模式下根據kickstart執行安裝(既然使用kickstart了,當然建議選擇使用純文字模式而不是圖形模式了) 9.1 skipx:不安裝圖形工具 10.halt/reboot:安裝完成後關機還是reboot,預設是halt 11.ignoredisk:指定忽略的磁碟 12.install/upgrade:指定是安裝還是升級系統 對於install,還必須指定下面幾種安裝方式之一: cdrom:指定從第一個光碟驅動器安裝 harddrive:指定從本地硬碟安裝,要求硬碟必須是vfat或者ext2檔案系統格式 --biospart:指定從bios型別的分割槽來安裝,如82檔案系統型別號的分割槽 --partition:從某個分割槽安裝 --dir:指定從包含install-tree(安裝樹)的目錄安裝 例如:harddrive --partition=hdb2 --dir=/tmp/install-tree nfs:指定從nfs路徑安裝 --server:指定nfs伺服器主機名或IP --dir:指定包含install-tree的目錄 --opts:指定掛載NFS的mount選項 如:nfs --server=172.16.10.10 --dir=/export_path url:指定從ftp、http、https安裝 例如:url --url ftp://172.16.10.10 13.loggin:指定安裝過程中的錯誤日誌位置 --host:指定日誌將傳送到那臺主機上 --port:如果遠端主機的rsyslog使用非預設埠,則應該指定該埠選項 --levle:指定日誌級別 14.network:為系統配置網路資訊,並在安裝過程中啟用該網路裝置。可多次使用network指令,例如既設定網路,又設定主機名 --bootproto:dhcp或static;對於static則必須指定IP地址、子網掩碼、閘道器和DNS --device:網絡卡名,可以使用eth0類似的名稱來指定 --hostname:指定主機名 --onboot:是否在引導系統時啟用指定的裝置 如: network --bootproto=static --ip=192.168.100.2 --netmask=255.255.255.0 --gateway=192.168.100.254 --nameserver=8.8.8.8 network --bootproto=dhcp --device=eth0 --noipv6 network --hostname=node1.xuexi.com 15.autopart: 自動建立幾個分割槽:大於1G的根分割槽,250M的boot分割槽和swap分割槽 16.zerombr:清除磁碟的mbr 17.clearpart: 在安裝系統前清除分割槽,如果指定該選項則必須指定正確 --all:清除所有分割槽 --Linux:清除Linux分割槽 --none:不清除分割槽 --initlabel:建立標籤,對於沒有MBR或者GPT的新硬碟,該選項是必須的 --drivers=sdb:清除指定的分割槽 所以,clearpart --all --initlabel是常見的方式 18.part:建立分割槽 --asprimary:強制指定為主分割槽 --grow:使用所有可用空間,即為其分配所有剩餘空間。對於根分割槽至少需要3G空間(即使是--grow,也還是需要指定--size) --ondisk:指定在哪塊磁碟上建立分割槽。如果有多塊磁碟,則需要指定在哪塊磁碟上建立哪個分割槽,只有一塊硬碟時可以省略該選項 如: #part /boot --fstype=ext4 --asprimary --size=200 #boot分割槽200-250M足以 #part swap --fstype=swap --asprimary --size=2048 #part / --fstype=ext4 --grow --asprimary --size=2000 LVM的分割槽方法: part /boot --fstype ext4 --size=100 part swap --fstype=swap --size=2048 part pv26 --size=100 --grow volgroup VG00 --pesize=32768 pv26 logvol / --fstype ext4 --name=LVroot --vgname=VG00 --size=29984 logvol /data --fstype ext4 --name=LVdata --vgname=VG00 --size=100 --grow 19.repo:指定除自帶的yum源外的其他yum源,可以指定多行yum源(既然是第一次裝系統,基本都不會去加這項) 如:repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100 20.services:設定預設執行級別下開機自啟動的服務 --disable --enable disable先處理enable後處理 如services --disable auditd,cups,atd 21.timezone:指定時區 如:Asia/Shanghai 22.user:在系統中生成一個新使用者 --name:指定使用者名稱 --groups:指定輔助組,非預設組 --homedir:使用者家目錄,如果不指定則預設為/home/<username> --password:該使用者的密碼,如果不指定或省略則建立後該使用者處於鎖定狀態 --shell:使用者的shell,不指定則預設 --uid:使用者UID,不指定則自動分配一個非系統使用者的UID 23.key:輸入序列號,只在RedHat中有,CentOS系統沒有該項 --skip 跳過key選項 【kickstart軟體包或包組選項】 使用"%packages"表示該段內容,@表示選擇的包組,最前面使用橫槓表示取反,即不選擇的包或包組。 @base和@core兩個包組總是被預設選擇,所以不必在%packages中指定它們