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)

 

 

参考资料:http://www.linuxdiyf.com/linux/3191.html

参考资料:http://www.linuxidc.com/Linux/2013-07/87299.htm

 

================================以下为一个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