KICKSTART关键字
KICKSTART关键字和参数
尽管Kickstart配置文件是自动生成的,并反映了安装期间选择的选项。为了充分利用kickstart,您需要手工创建这些文件,也可以使用称为Kickstart Configurator
的特殊工具来创建这些文件。必须注意,必须按顺序指定kickstart配置部分。这些主要部分中的项目不必按指定顺序排列。这些部分的主要顺序如下:
命令部分
注意:在此指定了主要必需的选项。不需要的项目可以省略。
如果创建的kickstart文件缺少必需的关键字之一,则在安装过程中将提示您输入所需的信息,就像在典型安装过程中会提示您一样。回答了丢失的信息后,安装将继续进行,而无需注意。必需的关键字以及一些常用的可选关键字已包含在下面。
注意:以井号(#)开头的行将被忽略,并被视为注释。
注:对于kickstart升级,需要以下项目:
- 语言
- 语言支持
- 安装方法
- 设备规范(如果需要设备来执行安装)
- 键盘设置
- upgrade关键字
- Boot loader配置
如果为升级指定了其他任何项目,则将忽略这些项目(请注意,这包括软件包选择)。
KICKSTART:必填关键字
auth或authconfig
设置系统的身份验证选项。默认情况下,密码通常是加密的,不会被屏蔽。下面的示例指定阴影密码与sha512哈希算法一起使用。
authconfig --enableshadow --passalgo=sha512
bootloader
bootloader关键字指定应如何安装引导加载程序。此选项是安装和升级所必需的。以下示例表明,引导加载程序已安装到驱动器sda上的主引导记录中。
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
keyboard
设置系统的默认键盘类型。
keyboard en_us
lang
设置在安装过程中使用的语言以及在已安装系统上使用的默认语言。lang en_US.UTF-8
network(可选)
尽管未将网络选件归类为必需选件。对这个关键字有基本的了解很重要。如果您需要在kickstart安装期间手动指定网络设置,则可以使用asknetwork选项引导系统 。这将提示anaconda询问您您的网络设置,而不是使用默认设置(通常为DHCP)。Anaconda安装程序将在获取kickstart文件之前要求提供此信息。但是,您可以按照以下示例指定选项。
网络设置为DHCP示例:
network --onboot no --device eth0 --bootproto dhcp --noipv6
网络设置为静态ip示例:
network --device eth0 --bootproto static --ip 192.168.0.44 --netmask 255.255.255.0 --gateway 192.168.0.1 --nameserver 192.168.0.1 --hostname kicks01
上面指定了将网络接口称为eth0
`,bootproto指定我们将使用静态IP地址。其他参数不言自明。
part 或者 partition(安装必需,升级时忽略)
在系统上创建一个分区。有关此选项的更多信息,请参见: 使用Kickstart进行分区
repo(可选)
repo命令可用于指定其他自定义存储库。如果未指定repo,则仍应从安装介质中找到基本存储库。
repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
rootpw
将系统的根密码设置为password
参数。
--iscrypted
—如果存在,则假定password参数已被加密。
timezone
将系统时区设置为timezone
,它可以是timeconfig列出的任何时区。
timezone --utc Europe/London
zerombr(可选)
如果指定了zerombr,则会初始化磁盘上找到的所有无效分区表。这会破坏具有无效分区表的磁盘的所有内容。在具有先前初始化的磁盘的系统上执行无人参与的安装时,需要此命令。尽管这是可选的,但如果未指定它并且以前已使用过磁盘,则无人参与的安装可能会停止,并要求您手动选择重新初始化选项。只需在kickstart文件中添加zerombr
即可指定此命令。(以前,您必须指定zerombr yes,但是现在已弃用了该选项)。
%packages部分
使用%packages命令选择您要安装的软件包(这仅用于安装,因为不支持在升级过程中选择软件包)。通过给每个软件包指定其RPM名称(不包括版本和平台信息)来指定它们。组软件包由@符号,空格和完整的组名指定。
您可以按组或它们的包名称指定包。(以下示例取自CentOS 6.5系统)
%packages @base @console-internet @core @debugging @basic-desktop @directory-client @general-desktop @graphical-admin-tools @hardware-monitoring @internet-browser @java-platform @large-systems @network-file-system-client @performance @perl-runtime @server-platform @server-policy @workstation-policy @x11 mtools pax oddjob wodim sgpio genisoimage device-mapper-persistent-data samba-winbind certmonger pam_krb5 krb5-workstation perl-DBD-SQLite %end
注意,默认情况下始终选择核心
和基本
组,因此没有必要在%packages
部分中指定它们。通过名称(一行的一个条目)指定单个软件包。您可以使用星号*
作为通配符,以使条目中的包名称通用化。例如:
nfs*
nfs *
包括软件包nfs-utils,nfs-utils-lib以及与指定模式匹配的任何其他软件包。您也可以执行命令yum grouplist
以显示可用的组。(这是在现有服务器上完成的)。
前导破折号用于指定要从安装中排除的软件包或组。例如:
-@ Graphical Internet -autofs
--nobase
不要安装@Base组。使用此选项可以执行最小化安装,例如针对单一用途的服务器或台式机设备。
%pre部分
可以添加命令以在ks.cfg被解析后立即运行。本节放在kickstart配置文件的末尾。本节必须以%pre命令开头,以%end命令结尾。如果kickstart文件中还包含%post部分,则%pre和%post部分的顺序无关紧要。
可以在%pre部分中访问网络。但是,由于此时尚未配置名称服务,因此只能接受IP地址。
%post部分
使用%post部分
,您可以添加安装完成后可以在系统上运行的命令。此部分必须放在kickstart文件的末尾。本节必须以%post命令开头,以%end命令结尾。本节对于诸如安装其他软件,配置其他名称服务器甚至添加帐户之类的功能很有用。
Kickstart文档
Red Hat官方文档
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/