在上面的實驗中,咱們沒有進行任何的安裝配置,所有都是Cobbler幫助咱們完成的。但是在實際生產中,咱們對每臺主機的硬盤分區,安裝的軟件都有相應的要求,因此咱們須要本身來定製KickStart文件,這樣咱們就可以定製地批量安裝操做系統了。
咱們就利用實驗環境(CentOS 7)中的KickStart文件來定製咱們本身的KickStart文件。node
Cobbler的ks文件存放位置linux
/var/lib/cobbler/kickstarts/ ios
配置ks的方法redis
方法一、 每安裝好一臺Centos機器,Centos安裝程序都會建立一個kickstart配置文件,記錄你的真實安裝配置。若是你但願實現和某系統相似的安裝,能夠基於該系統的kickstart配置文件來生成你本身的kickstart配置文件。(生成的文件名字叫anaconda-ks.cfg位於/root/anaconda-ks.cfg)
方法二、Centos提供了一個圖形化的kickstart配置工具。在任何一個安裝好的Linux系統上運行該工具,就能夠很容易地建立你本身的kickstart配置文件。kickstart配置工具命令爲redhat-config-kickstart(RHEL3)或system-config-kickstart(RHEL5/6/7)
方法三、按照格式自定義一個.cfg文件(方法1不可用的狀況下)centos
ks文件說明服務器
kickstart文件是一個簡單的文本文件,它包含了一個項目列表,每一個項目由一個關鍵字來識別。網絡
firewall(可選)app
這個選項對應安裝程序裏的「防火牆配置」屏幕: firewall –enabled|–disabled [–trust=] [–port=]
graphical(可選)ide
在圖形模式下執行kickstart安裝.kickstart安裝默認在圖形模式下安裝.text文本安裝。
network(可選)工具
爲系統配置網絡信息.若是 kickstart安裝不要求聯網(換句話說,不從NFS,HTTP或FTP安裝),就不須要爲系統配置網絡.若是安裝要求聯網而kickstart文件 裏沒有提供網絡信息,安裝程序會假定從eth0經過動態IP地址(BOOTP/DHCP)來安裝,並配置安裝完的系統動態決定IP地址.network選 項爲經過網絡的kickstart安裝以及所安裝的系統配置聯網信息. –ip=,要安裝的機器的IP地址. –gateway=,IP地址格式的默認網關. –nameserver=,主名稱服務器,IP地址格式. –nodns,不要配置任何 DNS 服務器. –netmask=,安裝的系統的子網掩碼. –hostname=,安裝的系統的主機名. –ethtool=,指定傳給ethtool程序的網絡設備的其餘底層設置. –essid=,無線網絡的網絡ID. –wepkey=,無線網絡的加密密鑰. –onboot=,是否在引導時啓用該設備. –class=,DHCP類型. –mtu=,該設備的MTU. –noipv4=,禁用此設備的IPv4. –noipv6=,禁用此設備的IPv6
multipath(可選)
multipath –name= –device= –rule=part或partition(對於安裝是必需的,升級可忽略). 在系統上建立分區. 若是不一樣分區裏有多個紅帽企業Linux系統,安裝程序會提示用戶升級哪一個系統. 注意:做爲安裝過程的一部分,全部被建立的分區都會被格式化,除非使用了–noformat和–onpart.,若是是分區的掛載點,它必須是下列形式中的一種: / ,例如,/,/usr,/home swap,該分區被用做交換空間,要自動決定交換分區的大小,使用–recommended選項. swap –recommended 自動生成的交換分區的最小值大於系統內存的數量,但小於系統內存的兩倍. raid. ,該分區用於 software RAID(參考 raid). pv. ,該分區用於 LVM(參考 logvol). –size=,以MB爲單位的分區最小值.在此處指定一個整數值,如500.不要在數字後面加MB. –grow,告訴分區使用全部可用空間(如有),或使用設置的最大值. –maxsize=,當分區被設置爲可擴充時,以MB爲單位的分區最大值.在這裏指定一個整數值,不要在數字後加MB. –noformat,用–onpart命令來告訴安裝程序不要格式化分區. –onpart=或–usepart=,把分區放在已存在的設備上. 例如:partition /home –onpart=hda1,把/home置於必須已經存在的/dev/hda1上. –ondisk=或–ondrive=,強迫分區在指定磁盤上建立. 例如:–ondisk=sdb把分區置於系統的第二個SCSI磁盤上. –asprimary,強迫把分區分配爲主分區,不然提示分區失敗. –type=(用fstype代替),這個選項再也不可用了.應該使用fstype. –fstype=,爲分區設置文件系統類型.有效的類型爲ext2,ext3,swap和vfat. –start=,指定分區的起始柱面,它要求用–ondisk=或ondrive=指定驅動器.它也要求用–end=指定結束柱面或用 –size=指定分區大小. –end=,指定分區的結束柱面.它要求用–start=指定起始柱面. –bytes-per-inode=,指定此分區上建立的文件系統的節點大小.不是全部的文件系統都支持這個選項,因此在其餘狀況下它都被忽略. –recommended,自動決定分區的大小. –onbiosdisk,強迫在 BIOS 找到的特定磁盤上建立分區. 注:若是由於某種緣由分區失敗了,虛擬終端3上會顯示診斷信息
定義安裝的包:
%packages (xxx) %end
定義安裝後執行的命令或腳本:
%post (xxx) %end
ks文件示例
centos7
cat /var/lib/cobbler/kickstarts/centos7.cfg
#platform=x86, AMD64, or Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts # old format: keyboard us # new format: keyboard --vckeymap=us --xlayouts='us' # Root password rootpw --iscrypted $1$1qaz!QAZ$L4d6kVwN3toE.0oAS.dQ31 # Use network installation url --url="http://192.168.42.128/cobbler/ks_mirror/CentOS-7-x86_64_new-x86_64/" # System language lang en_US.UTF-8 # Firewall configuration firewall --disabled # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install #graphical reboot text # Run the Setup Agent on first boot firstboot --enable # SELinux configuration selinux --disabled # Do not configure the X Window System skipx # System services services --disabled="chronyd" ignoredisk --only-use=sda # Network information network --bootproto=dhcp --device=eth0 --onboot=on # Reboot after installation reboot # System timezone timezone Asia/Shanghai # System bootloader configuration bootloader --location=mbr --boot-drive=sda # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --asprimary --fstype="xfs" --size=1024 part swap --fstype="swap" --size=2048 part / --fstype="xfs" --grow --size=1 %packages @^minimal @core %end %post cat >/etc/profile<<EOF HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S `whoami` " ulimit -n 65536 EOF cat >/etc/security/limits.conf<<EOF * soft nofile = 65536 * hard nofile = 65536 root soft nofile 65536 root hard nofile 65536 EOF hwclock -w %end
centos6.8
#platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install # Use network installation url --url="http://192.168.137.38/cobbler/ks_mirror/CentOS-6.8-x86_64/" #repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100 # Root password rootpw --iscrypted $1$ljohn$yBMDpKkntQ9jfV1ZAWKpU1 # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical # System keyboard keyboard us # System language lang en_US.UTF-8 # SELinux configuration selinux --disabled # Do not configure the X Window System skipx # Installation logging level #logging --level=info # Reboot after installation reboot # System timezone timezone Asia/Shanghai # Network information network --bootproto=dhcp --device=eth0 --onboot=on #network --bootproto=dhcp --device=eth1 --onboot=on # System bootloader configuration bootloader --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda" # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --asprimary --fstype="ext4" --size=500 part swap --fstype="swap" --size=2048 part / --fstype="ext4" --grow --size=1 %packages --nobase @core %end
在Cobbler 自動建立了yum源以後,會自動有一個ks文件與該源相對應。如今咱們須要將本身製做的KS文件與原有的yum源進行關聯。
# --name 咱們須要添加的啓動菜單的名字 # --distro 咱們自定製的ks文件關聯的yum庫 # --kickstart 咱們自定製的ks文件的路徑
[root@localhost kickstarts]#cobbler profile add --name=centos7-x86_64-new --distro=centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.cfg
查看Cobbler中如今還有多少個啓動項
[root@localhost kickstarts]#cobbler profile list centos6.9-x86_64 centos7-x86_64 centos7-x86_64-new
每次對cobbler更改都要執行同步
#cobbler sync