1. 程式人生 > >PXE配置中ks.cfg檔案介紹

PXE配置中ks.cfg檔案介紹

ks.cfg檔案:又稱Kickstart檔案,主要用於Linux系統的自動化安裝。

在CentOS系統中 /root/anaconda-ks.cfg就是一個ks.cfg檔案,它指明瞭當前系統預安裝環境時的設定內容。

linux安裝大致可以分為2個階段

第一階段:linux的預安裝環境

此階段是linux的預安裝環境,提供linux安裝選項的一個介面,可以將它比作是windows中的PE環境

第二階段:自動安裝過程

該階段系統會按照第一階段設定的引數自動安裝,

第一階段有兩種模式:互動式和非互動式

互動式就和普通安裝一樣,按照提示選擇選項一步步的安裝

非互動式則通過讀取kickstart檔案的配置,進行自動安裝,這和window中的無人值守安裝差不多的,這個檔案即是ks.cfg檔案(相當於window中的wi2k3.sif應答檔案)

而在安裝linux過程中,獲取ks.cfg檔案的方式有多種,如直接在cdrom中獲取,常見的形式還有http,ftp,nfs等方式。


在使用ks.cfg之前,需要先引導啟動環境

引導方式有很多,cdrom,usb,PXE等。

在引導進入第一階段後,即可通過讀取ks.cfg來進行系統的自動安裝

這裡開始說說ks檔案的大致內容


ks.cfg檔案組成大致分為3段

1.命令段:

鍵盤型別,語言,安裝方式等系統的配置,有必選項和可選項,如果缺少某項必選項,安裝時會中斷並提示使用者選擇此項的選項

2.軟體包段:

%packages

@groupname:指定安裝的包組

package_name:指定安裝的包

-package_name:指定不安裝的包

在安裝過程中預設安裝的軟體包,安裝軟體時會自動分析依賴關係。

3.指令碼段(可選):

%pre:預安裝指令碼(由於只依賴於啟動映象,支援的命令很少)

%post:後安裝指令碼(基本支援所有命令)

而具體的ks.cfg檔案的配置,我們只需要在已經安裝好的linux的root家目錄找到anaconda_ks.cfg(這個ks檔案就是在安裝linux後,根據使用者的安裝選項自動生成的)

下面的是一個樣例:

#version=DEVEL

# System authorization information

auth --enableshadow --passalgo=sha512# 系統授權資訊

# Use network installation

url --url="http://192.168.52.132/centos7" # 安裝方式,如果是本地光碟安裝則是 cdrom

# Use graphical install

graphical

# Run the Setup Agent on first boot

firstboot --enable

# Keyboard layouts

keyboard --vckeymap=cn--xlayouts='cn' # 鍵盤樣式

# System language

lang zh_CN.UTF-8  #語言
# Network information

# 網路配置資訊,設定IP獲取方式,閘道器及DNS等資訊

network  --bootproto=dhcp --device=eno16777736 --ipv6=auto --activate

network  --hostname=localhost.localdomain
# Root password

# root賬戶的資訊及密碼,密碼是加密過的

rootpw --iscrypted$6$qUeqvWWOr921mWBY$h5wjwdcnIOC/FS6rCaZblKNGELwN9jrGwJZuwlrNi9OHzI.n1lxaKKrkwdN7nadXP5f2mFRDrW9D9gYStXGZu/

# System timezone

# 系統時區與其他使用者資訊及使用者密碼

timezone Asia/Shanghai --isUtc

user --groups=wheel--name=pxetest --password=$6$.hgpJdCAhSMaf7yB$5GKYIAgTkLxfS1JHK5KSpN96LXhkKGFX3FbnQl0hTME3wbF1njxyezmPF/HXAtI9Bp8U6MsF3hRXlFvFfn9Nm/--iscrypted --gecos="pxetest"

# System bootloader configuration

# 載入程式相關引數

bootloader --append="crashkernel=auto" --location=mbr --boot-drive=sda

autopart --type=lvm

# Partition clearing information

# 初始化磁碟設定

clearpart --none --initlabel
# 分割槽設定

# part / --fstype=ext4 --size=18000 #開始分割槽
# part swap --grow --size=1024
# repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100

# 需要安裝的系統模式及附加軟體包

%packages

@^infrastructure-server-environment

@base

@compat-libraries

@core

@debugging

@development

@dns-server

@file-server

@ftp-server

@security-tools

@smart-card

kexec-tools

# 後安裝指令碼,Linux安裝完成後執行的指令碼可以寫在這裡

# %post



%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

如果覺得使用樣本的方式手工寫配置檔案比較麻煩,也可以使用圖形化工具來製作ks.cfg檔案。在linux中用yum安裝system-config-kickstart就行了(圖形化依賴於x-window),選項也有些限制(比如分割槽不能使用lvm)

================================以下為一個ks.cfg的例子====================================

#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
url --url="http://192.168.17.151/cobbler/ks_mirror/CentOS-7-x86_64"
text
# Firewall configuration
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
keyboard --vckeymap=cn --xlayouts='cn'
# System language
lang zh_CN.UTF-8
# Network information
network --bootproto=dhcp --device=eno16777736 --ipv6=auto --activate
network --bootproto=dhcp --hostname=Client-x
# Reboot after installation
reboot
# Root password
rootpw --iscrypted $6$PumnYZm77S9o.9e5$IRSIoUF4GgOxpj.r2OY5qTxJwBz1NyUVYciFPhEyj5MqcFCOHCQd3cNpt60LIwWlXtWLXZ2tT8G51FZkYXJyW/
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# System timezone
timezone Asia/Shanghai --isUtc
user --groups=wheel --name=test --password=$6$Rs9WcGhknZPweSTO$aAAyGL61HFwF8zrUG.8E6q99MUNI/rTCHWFyM7Qz3Jqf.VQskwCfhYQ8fT78WXcDprl3xSWtbDCBCJHToY3gc. --iscrypted --gecos="test"
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
%packages
@^minimal
@core
@debugging
@development
kexec-tools
kexec-tools
net-tools
vim
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end