Kickstart配置文件

一、Kickstart配置文件由三部分組成:
      一是選項指令段,用於自動應答圖形界面安裝時除包選擇外的所有手動操作
      二是package選擇段,使用%packages引導該功能
      三是腳本段,該段可有可無,分爲兩種:
         (1) %pre  預安裝腳本段,在安裝系統之前就執行的腳本,該段很少使用,因爲可用的命令太少
         (2) %post 後安裝腳本段,在系統安裝完成後執行的腳本

  創建kickstart文件
       kickstart文件是一個簡單的文本文件,它包含了一個項目列表,每個項目由一個關鍵字來識別.可以用
「Kickstart 配置」應用程序創建它或是自己從頭編寫.
       首先,在創建kickstart文件時留意下列問題:
               1.每節必須按順序指定.除非特別申明,每節內的項目則不必按序排列.小節的順序爲:
                       命令部分,這裏應該包括必需的選項.
                       %packages部分,這部分選擇需要安裝的軟件包.
                       %pre和%post部分,這兩個部分可以按任何順序排列而且不是必需的.
               2.不必需的項目可以被省略.
               3.如果忽略任何必需的項目,安裝程序會提示用戶輸入相關的項目的選擇,就象用戶在典型的安
       裝過程中所遇到的一樣.一旦用戶進行了選擇,安裝會以非交互的方式(unattended)繼續(除非找到另外一個沒有指定的項目).
               4.以井號("#")開頭的行被當作註釋行並被忽略.
       對於 kickstart 升級,下列項目是必需的:
               1.語言
               2.安裝方法
               3.設備規格(如果這個設備是在安裝過程中所需要的)
               4.鍵盤設置
               5.upgrade 關鍵字
               6.引導裝載程序配置
               7.如果任何其他的項目被指定爲upgrade,這些項目將被忽略(注意這包括了軟件包選擇).          
二、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("C
【可選的選項】:

1.selinux:設置selinux,值爲enforcing,permissice,disable之一

2.autostep: 交互式,和interactive類似,爲系統設置驗證選項.這和在安裝後運行的authconfig命令相似.在缺省情況下,
密碼通常被加密但不使用影子文件(shadowed).

3.interactive: 使用kickstart文件指定的參數交互式安裝,但仍會給出每一步的選擇項,如果直接下一步就使用kickstart參數

4.cmdline: 在完全的非交互式的命令行模式下進行安裝.任何交互式的提示都會終止安裝.這個模式對於有x3270控制檯的IBM System z系統很有用.
5.driverdisk:指定驅動程序所在位, 可以在kickstart安裝過程中使用驅動軟盤.必須把驅動軟盤的內容複製到系統的硬盤分區的根目錄下.
然後必須使用driverdisk 命令來告訴安裝程序到哪去尋找驅動磁盤.
driverdisk <partition> [--type=<fstype>]
另外,也可以爲驅動程序盤指定一個網絡位置:
               driverdisk --source=ftp://path/to/dd.img
               driverdisk --source=http://path/to/dd.img
               driverdisk --source=nfs:host:/path/to/img
                       <partition>,包含驅動程序盤的分區.
                       --type=,文件系統類型(如:vfat,ext2,ext3).    drvierdisk --source=
6.firewall:設置firewall,firewall --enabled|--disabled [--trust=] <device> [--port=]
      --enabled或者--enable,拒絕不是答覆輸出請求如DNS答覆或DHCP請求的進入連接.如果需要使用在這個機器上運行的服務,
可以選擇允許指定的服務穿過防火牆.
      --disabled或--disable,不要配置任何iptables規則.
      --trust=,在此列出設備,如eth0,這允許所有經由這個設備的數據包通過防火牆.如果需要列出多個設備,
使用--trust eth0 --trust eth1.不要使用以逗號分隔的格式,如--trust eth0, eth1.
      <incoming>,使用以下服務中的一個或多個來替換,從而允許指定的服務穿過防火牆.
                       --ssh
                       --telnet
                       --smtp
                       --http
                       --ftp
      --port=,可以用端口:協議(port:protocal)格式指定允許通過防火牆的端口.
                       例如,如果想允許IMAP通過的防火牆,可以指定imap:tcp.還可以具體指定端口號碼,
要允許UDP分組在端口1234通過防火牆,輸入1234:udp.要指定多個端口,用逗號將它們隔開.

7.firstboot:決定是否在系統第一次引導時啓動"設置代理".如果啓用,firstboot軟件包必須被安裝.如果不指定,這個選項是缺省爲禁用的.
      --enable或--enabled,系統第一次引導時,啓動"設置代理".
      --disable或--disabled,系統第一次引導時,不啓動"設置代理".
      --reconfig,在系統引導時在重配置(reconfiguration)模式下啓用"設置代理".這個模式啓用了語言,鼠標,鍵盤,根密碼,安全級別,時區和缺省網絡配置之外的選項.

8.graphical:在圖形模式下根據kickstart執行安裝,默認該選項

9.text:文本模式下根據kickstart執行安裝(既然使用kickstart了,當然建議選擇使用純文本模式而不是圖形模式了), skipx:不安裝圖形工具
10.halt/reboot/poweroff:安裝完成後關機還是reboot,默認是halt
11.ignoredisk:指定忽略的磁盤,導致安裝程序忽略指定的磁盤.如果使用自動分區並希望忽略某些磁盤的話,這就很有用.
      例如,沒有ignoredisk,如要試圖在SAN-cluster系統裏部署,kickstart就會失敗,因爲安裝程序檢測到SAN不返回分
      區表的被動路徑(passive path).如果有磁盤的多個路徑時,ignoredisk選項也有用處.
      語法是:
             ignoredisk --drives=drive1,drive2,...這裏driveN是sda,sdb... hda等等中的一個.
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.logging:指定安裝過程中的錯誤日誌位置
   --host=:指定日誌將發送到那臺主機上,發送日誌信息到給定的遠程主機,這個主機必須運行配置爲可接受遠程日誌的syslogd進程.
   --port=:如果遠程主機的rsyslog使用非默認端口,則應該指定該端口選項
   --levle=:指定日誌級別,debug,info,warning,error或critical中的一個.
14.network:爲系統配置網絡信息,並在安裝過程中激活該網絡設備。可多次使用network指令,例如既設置網絡,又設置主機名
   --bootproto:dhcp(bootp)或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                part swap --fstype=swap --asprimary --size=2048                        part / --fstype=ext4 --grow --asprimary  --size=2000
  logvol(可選):使用以下語法來爲邏輯卷管理(LVM)創建邏輯卷:
  logvol <mntpoint> --vgname=<name> --size=<size> --name=<name><options>
  選項如下所示:
               --noformat,使用一個現存的邏輯卷,不進行格式化.
               --useexisting,使用一個現存的邏輯卷,重新格式化它.
               --fstype=,爲邏輯卷設置文件系統類型.合法值有:ext2,ext3,swap和vfat.
               --fsoptions=,爲邏輯卷設置文件系統類型.合法值有:ext2,ext3,swap和vfat.
               --bytes-per-inode=,指定在邏輯捲上創建的文件系統的節點的大小.因爲並不是所有的文件系統都支持這個選項,所以在其他情況下它都被忽略.
               --grow=,告訴邏輯卷使用所有可用空間(若有),或使用設置的最大值.
               --maxsize=,當邏輯卷被設置爲可擴充時,以MB爲單位的分區最大值.在這裏指定一個整數值,不要在數字後加MB.
               --recommended=,自動決定邏輯卷的大小.
               --percent=,用卷組裏可用空間的百分比來指定邏輯卷的大小.
   首先創建分區,然後創建邏輯卷組,再創建邏輯卷.
                       例如:         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中指定它們%packages
@base @core @debugging @development @dial
-up @hardware-monitoring @performance @server-policy @workstation-policy sgpio device-mapper-persistent-data systemtap-client
lrzsz
tree

%end

 以下是CentOS 6.6下的ks文件示例。

install
text
nfs --server=192.168.100.100 --dir=/install
url --url=http://192.168.100.100/centos6.6
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto quiet"
lang en_US.UTF-8
keyboard us
network --onboot=yes --device=eth0 --bootproto=dhcp --noipv6
rootpw  --iscrypted $6$x4u9sIfSQsO7ddk5$/.0Xe6tFBY0uUmFFtyvAeY9YVPtcn8zl21fFNgmAoYtepQHRYDthQ4T1ZE12kDfAT6O3oXfRb7uv214t3Bb3K1
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone Asia/Shanghai
reboot      


zerombr
clearpart --all --initlabel
part    /boot   --fstype=ext4   --asprimary     --size=250
part    /       --fstype=ext4   --asprimary     --grow     --size=2000
part    swap    --fstype=swap   --size=2000%packages

@base
@core
@debugging
@development
@dial-up
@hardware-monitoring
@performance
@server-policy
@workstation-policy
sgpio
device-mapper-persistent-data
systemtap-client
%end


%post    
cat >>/etc/yum.repos.d/base.repo<<eof
[base]
name=sohu
baseurl=http://mirrors.sohu.com/centos/$releasever/os/$basearch/
gpgcheck=0
enable=1[epel]
name=epel
baseurl=http://mirrors.sohu.com/Fedora-epel/6Server/x86_64/
enable=1
gpgcheck=0
eof
sed -i "s/ONBOOT.*$/ONBOOT=yes/" /etc/sysconfig/network-scripts/ifcfg-eth0   設置網卡爲啓動
sed -i "s/rhgb //" /boot/grub/grub.conf    設置啓動系統時不使用圖形進度條方式
sed -i "s/HOSTNAME=.*$/HOSTNAME=xuexi.longshuai.com/" /etc/sysconfig/network  設置主機名%end


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章