kickstart自動應答文件選項非常多,以下只說明CentOS 6下幾個常用的可能用到的選項。另外,CentOS 6和CentOS 7的選項有不小區別,所以請注意使用,可以查看官方安裝文檔。
以下是CentOS 6上kickstart選項說明:在最后還給出了一個kickstart文件的示例。
#文件由三部分組成
#一是選項指令段,用於自動應答圖形界面安裝時除包選擇外的所有手動操作
#二是package選擇段,使用%packages引導該功能
#三是腳本段,該段可有可無,分為兩種:
# (1) %pre 預安裝腳本段,在安裝系統之前就執行的腳本,該段很少使用,因為可用的命令太少
# (2) %post 后安裝腳本段,在系統安裝完成后執行的腳本
# 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:指定日志級別
13.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中指定它們
%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 #安裝結束后重啟 #make partitions 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=jd baseurl=http://mirrors.jd.com/centos/$releasever/os/$basearch/ gpgcheck=0 enable=1 [epel] name=epel baseurl=http://mirrors.jd.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
