kickstart详解

Posted zhangxingeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kickstart详解相关的知识,希望对你有一定的参考价值。

ks详解

一、文件组成

文件由三部分组成

1、选项指令段

用于自动应答图形/文本界面安装时除了包以外的所有操作

2、package选择段

使用%packages引导该功能

3、脚本段

脚本段分为两部分

1)%pre 预安装脚本段,在安装系统之前就执行的脚本,该段很少使用,命令太少了

2)%post 后安装脚本段,在系统安装完成后执行的较薄

二、ks必须选项

语言
安装方法
bootload
键盘类型
验证

三、配置文件详解



1、auth

1)事例

# System authorization information
auth --enableshadow --passalgo=sha512 --enablefingerprint

2)说明

为系统设置验证选项.这和在安装后运行的authconfig命令相似.在缺省情况下,密码通常被加密但不使用影子文件(shadowed).

--enablemd5,每个用户口令都使用md5加密.
--enablenis,启用NIS支持.在缺省情况下,--enablenis使用在网络上找到的域.域应该总是用--nisdomain=选项手工设置.
--nisdomain=,用在NIS服务的NIS域名.
--nisserver=,用来提供NIS服务的服务器(默认通过广播).
--useshadow或--enableshadow,使用屏蔽口令.
--enableldap,在/etc/nsswitch.conf启用LDAP支持,允许系统从LDAP目录获取用户的信息(UIDs,主目录,shell 等等).要使用这个选项,必须安装nss_ldap软件包.也必须用--ldapserver=和--ldapbasedn=指定服务器和base DN(distinguished name).
--enableldapauth,把LDAP作为一个验证方法使用.这启用了用于验证和更改密码的使用LDAP目录的pam_ldap模块.要使用这个选项,必须安装nss_ldap软件包.也必须用--ldapserver=和--ldapbasedn=指定服务器和base DN.
--ldapserver=,如果指定了--enableldap或--enableldapauth,使用这个选项来指定所使用的LDAP服务器的名字.这个选项在/etc/ldap.conf文件里设定.
--ldapbasedn=,如果指定了--enableldap或--enableldapauth,使用这个选项来指定用户信息存放的LDAP目录树里的DN.这个选项在/etc/ldap.conf文件里设置.
--enableldaptls,使用TLS(传输层安全)查寻.该选项允许LDAP在验证前向LDAP服务器发送加密的用户名和口令.
--enablekrb5,使用Kerberos 5验证用户.Kerberos自己不知道主目录,UID或shell.如果启用了Kerberos,必须启用LDAP,NIS,Hesiod或者使用/usr/sbin/useradd命令来使这个工作站获知用户的帐号.如果使用这个选项,必须安装pam_krb5软件包.
--krb5realm=,工作站所属的Kerberos 5领域.
--krb5kdc=,为领域请求提供服务的KDC.如果的领域内有多个KDC,使用逗号(,)来分隔它们.
--krb5adminserver=,领域内还运行kadmind的KDC.该服务器处理改变口令以及其它管理请求.如果有不止一个KDC,该服务器必须是主KDC.
--enablehesiod,启用Hesiod支持来查找用户主目录,UID 和 shell.在网络中设置和使用 Hesiod 的更多信息,可以在 glibc 软件包里包括的 /usr/share/doc/glibc-2.x.x/README.hesiod里找到.Hesiod是使用DNS记录来存储用户,组和其他信息的 DNS 的扩展.
--hesiodlhs,Hesiod LHS("left-hand side")选项在/etc/hesiod.conf里设置.Hesiod 库使用这个选项来决定查找信息时搜索DNS的名字,类似于LDAP对 base DN的使用.
--hesiodrhs,Hesiod RHS("right-hand side")选项在/etc/hesiod.conf里设置.Hesiod 库使用这个选项来决定查找信息时搜索DNS的名字,类似于LDAP对base DN的使用.
--enablesmbauth,启用对SMB服务器(典型的是Samba或Windows服务器)的用户验证.SMB验证支持不知道主目录,UID 或 shell.如果启用SMB,必须通过启用LDAP,NIS,Hesiod或者用/usr/sbin/useradd命令来使用户帐号为工作站所知.要使用这个选项,必须安装pam_smb软件包.
--smbservers=,用来做SMB验证的服务器名称.要指定不止一个服务器,用逗号(,)来分隔它们.
--smbworkgroup=,SMB服务器的工作组名称.
--enablecache,启用nscd服务.nscd服务缓存用户,组和其他类型的信息.如果选择在网络上用NIS,LDAP或hesiod分发用户和组的信息,缓存就尤其有用.



2、bootloader

1)例子

# System bootloader configuration
bootloader --append="rhgb quiet crashkernel=auto" --location=mbr --driveorder="sda" --boot-drive=sda

2)说明

指定引导装载程序怎样被安装,对于安装和升级,这个选项都是必需的

--append=,指定内核参数.要指定多个参数,使用空格分隔它们.
例如:bootloader --location=mbr --append="hdd=ide-scsi ide=nodma"
--driveorder,指定在Bios引导顺序中居首的驱动器.
例如:bootloader --driveorder=sda,hda
--location=,指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition(在包含内核的分区的第一个扇区安装引导装载程序)或none(不安装引导装载程序).
--password=,如果使用GRUB,把GRUB引导装载程序的密码设置到这个选项指定的位置.这应该被用来限制对可以传入任意内核参数的GRUB shell的访问.
--md5pass=,如果使用GRUB,这和--password=类似,只是密码已经被加密.
--upgrade,升级现存的引导装载程序配置,保留其中原有的项目.该选项仅可用于升级.

3、安装类型install/

1)例子

# Install OS instead of upgrade
install

2)说明

告诉系统来安装全新的系统而不是在现有系统上升级.这是缺省的模式.必须指定安装的类型,如cdrom,harddrive,nfs或url(FTP 或HTTP安装).install命令和安装方法命令必须处于不同的行上.

4、media设置

可以是cdrom、harddrive,nfs,url等安装媒介

1)例子1-cdrom

从光盘介质来安装

# Use CDROM installation media
cdrom

2)例子2-harddrive

从本地驱动器的vfat或ext2格式的红帽安装树来安装.

--biospart=,从BIOS分区来安装(如82).
--partition=,从分区安装(如sdb2).
--dir=,包含安装树的variant目录的目录.
例如:harddrive --partition=hdb2 --dir=/tmp/install-tree

3)例子3-nfs

从指定的NFS服务器安装.

--server=,要从中安装的服务器(主机名或IP).
--dir=,包含安装树的variant目录的目录.
--opts=,用于挂载NFS输出的Mount选项(可选).
例如:nfs --server=nfsserver.example.com --dir=/tmp/install-tree

4)例子4-url

通过FTP或HTTP从远程服务器上的安装树中安装.

例如:url --url http://server/dir
或:url --url ftp://username:password@server/dir>

5、安装方式图形/文本

# Use text mode install
text

6、防火墙设置

# Firewall configuration
firewall --enabled --service=ssh

7、firstboot

1)例子

firstboot --disable

2)说明

安装后第一次启动默认会给出很多需要手动配置的界面,一般是禁用的

--enable或--enabled,系统第一次引导时,启动"设置代理".
--disable或--disabled,系统第一次引导时,不启动"设置代理".
--reconfig,在系统引导时在重配置(reconfiguration)模式下启用"设置代理".这个模式启用了语言,鼠标,键盘,根密码,安全级别,时区和缺省网络配置之外的选项.

8、ignoredisk设置

1)例子

ignoredisk --only-use=sda

2)说明

导致安装程序忽略指定的磁盘.如果使用自动分区并希望忽略某些磁盘的话,这就很有用.

例如,没有ignoredisk,如要试图在SAN-cluster系统里部署,kickstart就会失败,因为安装程序检测到SAN不返回分区表的被动路径(passive path).
如果有磁盘的多个路径时,ignoredisk选项也有用处.
语法是:
ignoredisk --drives=drive1,drive2,...
这里driveN是sda,sdb... hda等等中的一个

9、keyboard设置

# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=us --xlayouts=‘‘

10、系统语言设置

# System language
lang en_US.UTF-8

11、网络设置

# Network information
network  --bootproto=dhcp --device=eth0 --activate
network  --hostname=localhost.localdomain

12、安装后的重启

# Reboot after installation
reboot

13、root密码设置

# Root password
rootpw --iscrypted 6d/QQHF.8MAgw

14、selinux设置

# SELinux configuration
selinux --enforcing
#[--disabled|--enforcing|--permissive]

15、服务集设置

1)例子

# System services
services --enabled="chronyd"

2)说明

修改运行在缺省运行级别下的缺省的服务集.在disabled列表里列出的服务将在enabled列表里的服务启用之前被禁用.

--disabled,禁用用逗号隔开的列表里的服务.
--enabled,启用用逗号隔开的列表里的服务.

16、系统时区

1)例子

# System timezone
timezone America/New_York --isUtc
user --groups=wheel --name=zhangxingeng --password=6d/QQHF.8MAgw --iscrypted

2)说明

17、图形设置

1)例子

# X Window System configuration information
xconfig  --startxonboot

2)说明

配置X Window 系统.如果没有指定这个选项且安装了X,用户必须在安装过程中手工配置X;如果最终系统里没有安装X,这个选项不应该被使用.

--driver,指定用于视频硬件的 X 驱动.
--videoram=,指定显卡的显存数量.
--defaultdesktop=,指定GNOME或KDE作为缺省的桌面(假设已经通过%packages安装了GNOME或KDE桌面环境).
--startxonboot,在安装的系统上使用图形化登录.
--resolution=,指定安装的系统上X窗口系统的默认分辨率.有效值有:640x480,800x600,1024x768,1152x864, 1280x1024,1400x1050,1600x1200.请确定指定与视频卡和显示器兼容的分辨率.
--depth=,指定安装的系统上的 X 窗口系统的默认色彩深度.有效值有:8,16,24,和 32.请确定指定与视频卡和显示器兼容的色彩深度.

18、清除磁盘mbr设置

1)例子

# Clear the Master Boot Record
zerombr

2)说明

如果指定了zerombr且yes是它的唯一参数,任何磁盘上的无效分区表都将被初始化.这会毁坏有无效分区表的磁盘上的所有内容.这个命令的格式应该如下

zerombr yes

19、清除分区信息

1)例子

# Partition clearing information
clearpart --all --drives=sda

2)说明

在创建新分区之前,从系统上删除分区.默认不会删除任何分区.
注:如果使用了clearpart命令,--onpart命令就不能够用在逻辑分区上.

--all,删除系统上所有分区.
--drives=,指定从哪个驱动器上清除分区.
例如,下面的命令清除了主IDE控制器上的前两个驱动器上所有分区
clearpart --drives=hda,hdb --all
--initlabel,根据不同体系结构把磁盘标签初始化为缺省设置(例如,msdos用于x86而gpt用于Itanium).当安装到一个崭新的硬盘时,这很有用,安装程序不会询问是否应该初始化磁盘标签.
--linux,删除所有Linux分区.
--none(缺省),不要删除任何分区

20、创建分区设置

1)例子

# Disk partitioning information
part /boot --fstype=ext4 --asprimary --size=200     #boot200-250M
part swap --fstype=swap --asprimary --size=2048             
part / --fstype=ext4 --grow --asprimary  --size=2000

2)说明

--asprimary:强制指定为主分区
--grow:使用所有可用空间,即为其分配所有剩余空间。对于根分区至少需要3G空间(即使是--grow,也还是需要指定--size)
--ondisk:指定在哪块磁盘上创建分区。如果有多块磁盘,则需要指定在哪块磁盘上创建哪个分区,只有一块硬盘时可以省略该选
lvm设置
part pv.65 --fstype="lvmpv" --size=65035
part /boot --fstype="ext4" --size=500
volgroup VolGroup --pesize=4096 pv.65
logvol swap --fstype="swap" --grow --maxsize=2016 --size=1008 --name=lv_swap --vgname=VolGroup
logvol / --fstype="ext4" --grow --maxsize=51200 --size=1024 --name=lv_root --vgname=VolGroup
logvol /home --fstype="ext4" --grow --size=100 --name=lv_home --vgname=VolGroup

21、repo设置

1)例子

repo --name="epel" --baseurl=http://repo.localepel.com/repo/centos/7/epel/7/x86_64

2)说明

指定除自带之外的源,可以是多个

repo --name= [--baseline=| --mirrorlist=]

22、创建新的用户

说明

user --name= [--groups=] [--homedir=] [--password=] [--iscrypted] [--shell=] [--uid=]

--name=,提供用户的名字.这个选项是必需的.
--groups=,除了缺省的组以外,用户应该属于的用逗号隔开的组的列表.
--homedir=,用户的主目录.如果没有指定,缺省为/home/.
--password=,新用户的密码.如果没有指定,这个帐号将缺省被锁住.
--iscrypted=,所提供的密码是否已经加密?
--shell=,用户的登录shell.如果不提供,缺省为系统的缺省设置.
--uid=,用户的UID.如果未提供,缺省为下一个可用的非系统 UID.

23、安装后执行的脚本

1)例子

%post
# Get interface up
ifdown eth0
ifup eth0
/usr/bin/chfn -f ‘mac‘ zhangxingeng
mkdir -p /tmp/prl-tools-mnt
umount /dev/sr0
mount -t iso9660 -o exec /dev/sr0 /tmp/prl-tools-mnt
#EFImount -t msdos -o exec /dev/sr0 /tmp/prl-tools-mnt
mkdir -p /tmp/prl-tools-dir
mount -t iso9660 -o loop /tmp/prl-tools-mnt/prl-to*.iso /tmp/prl-tools-dir
echo
echo "Installing Parallels Tools, please wait..."
[ -d ‘/home/zhangxingeng‘ ] && ( HOME_DIR=/home/zhangxingeng/Desktop; mkdir -p "$HOME_DIR" && chown zhangxingeng:zhangxingeng "$HOME_DIR" );
cd /tmp/prl-tools-dir/
./install --install-unattended-with-deps --skip-rclocal-restore
umount /tmp/prl-tools-dir
rm -rf /tmp/prl-tools-dir
umount /dev/sr0
rm -rf /tmp/prl-tools-mnt
[ -e /tmp/sepolicy-devel.temp ] && rm /tmp/sepolicy-devel.temp
reboot
%end

23、软件包设置

1)例子

%packages --ignoremissing
@base
@basic-desktop
@core
@debugging
@desktop-debugging
@desktop-platform
@directory-client
@fonts
@general-desktop
@gnome-desktop
@graphical-admin-tools
@graphics
@input-methods
@java-platform
@legacy-x
@network-file-system-client
@performance
@perl-runtime
@print-client
@remote-desktop-clients
@server-platform
@virtualization
@virtualization-client
@virtualization-platform
@x11
abrt-gui
authconfig
certmonger
checkpolicy
chrony
gcc
genisoimage
kernel-devel
kexec-tools
krb5-workstation
libXmu
make
mtools
nscd
nss-pam-ldapd
oddjob
pam_krb5
pam_ldap
pax
perl-DBD-SQLite
python
python-dmidecode
selinux-policy-devel
sgpio
system-config-firewall-base
wodim

%end

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

%end

四、更多设置

1、图形

graphical
在图形模式下执行kickstart安装.kickstart安装默认在图形模式下安装.

2、logvol

使用以下语法来为逻辑卷管理(LVM)创建逻辑卷:
logvol --vgname= --size= --name=
这些选项如下所示:

--noformat,使用一个现存的逻辑卷,不进行格式化.
--useexisting,使用一个现存的逻辑卷,重新格式化它.
--fstype=,为逻辑卷设置文件系统类型.合法值有:ext2,ext3,swap和vfat.
--fsoptions=,为逻辑卷设置文件系统类型.合法值有:ext2,ext3,swap和vfat.
--bytes-per-inode=,指定在逻辑卷上创建的文件系统的节点的大小.因为并不是所有的文件系统都支持这个选项,所以在其他情况下它都被忽略.
--grow=,告诉逻辑卷使用所有可用空间(若有),或使用设置的最大值.
--maxsize=,当逻辑卷被设置为可扩充时,以MB为单位的分区最大值.在这里指定一个整数值,不要在数字后加MB.
--recommended=,自动决定逻辑卷的大小.
--percent=,用卷组里可用空间的百分比来指定逻辑卷的大小.
首先创建分区,然后创建逻辑卷组,再创建逻辑卷.
例如:
part pv.01 --size 3000
volgroup myvg pv.01
logvol / --vgname=myvg --size=2000 --name=rootvol

3、网络

为系统配置网络信息.如果 kickstart安装不要求联网(换句话说,不从NFS,HTTP或FTP安装),就不需要为系统配置网络.如果安装要求联网而kickstart文件里没有提供网络信息,安装程序会假定从eth0通过动态IP地址(BOOTP/DHCP)来安装,并配置安装完的系统动态决定IP地址.network选项为通过网络的kickstart安装以及所安装的系统配置联网信息.

--bootproto=,dhcp,bootp或static中的一种,缺省值是dhcp.bootp和dhcp被认为是相同的.
static方法要求在kickstart文件里输入所有的网络信息.顾名思义,这些信息是静态的且在安装过程中和安装后所有.静态网络的设置行更为复杂,因为必须包括所有的网络配置信息.必须指定IP地址,网络,网关和命名服务器.
例如(""表示连续的行):
network --bootproto=static --ip=10.0.2.15 --netmask=255.255.255.0
--gateway=10.0.2.254 --nameserver=10.0.2.1
如果使用静态方法,请注意以下两个限制:
所有静态联网配置信息都必须在一行上指定,不能使用反斜线来换行.
在这里只能够指定一个命名服务器.然而,如果需要的话,可以使用kickstart文件的%post段落来添加更多的命名服务器.
--device=,用来选择用于安装的特定的以太设备.注意,除非kickstart文件是一个本地文件(如ks=floppy),否则--device=的使用是无效的.这是因为安装程序会配置网络来寻找kickstart文件.
例如: network --bootproto=dhcp --device=eth0
--ip=,要安装的机器的IP地址.
--gateway=,IP地址格式的默认网关.
--nameserver=,主名称服务器,IP地址格式.
--nodns,不要配置任何 DNS 服务器.
--netmask=,安装的系统的子网掩码.
--hostname=,安装的系统的主机名.
--ethtool=,指定传给ethtool程序的网络设备的其他底层设置.
--essid=,无线网络的网络ID.
--wepkey=,无线网络的加密密钥.
--onboot=,是否在引导时启用该设备.
--class=,DHCP类型.
--mtu=,该设备的MTU.
--noipv4=,禁用此设备的IPv4.
--noipv6=,禁用此设备的IPv6.

五、简单实例

auth --enableshadow --passalgo=sha512 --enablefingerprint

install

text

url --url="http://10.211.55.4/centos7"

firewall --disable --service=ssh
firstboot --disable
ignoredisk --only-use=sda

keyboard --vckeymap=us --xlayouts=‘‘

lang en_US.UTF-8

network  --bootproto=dhcp --device=eth0 --activate
network  --hostname=localhost.localdomain

reboot

rootpw --iscrypted 6d/QQHF.8MAgw

selinux --enforcing

services --enabled="chronyd"

timezone America/New_York --isUtc
user --groups=wheel --name=zhangxingeng --password=6d/QQHF.8MAgw --iscrypted

xconfig  --startxonboot

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

zerombr

clearpart --all --drives=sda

part pv.65 --fstype="lvmpv" --size=65035
part /boot --fstype="ext4" --size=500
volgroup VolGroup --pesize=4096 pv.65
logvol swap  --fstype="swap" --grow --maxsize=2016 --size=1008 --name=lv_swap --vgname=VolGroup
logvol /  --fstype="ext4" --grow --maxsize=51200 --size=1024 --name=lv_root --vgname=VolGroup
logvol /home  --fstype="ext4" --grow --size=100 --name=lv_home --vgname=VolGroup
%packages
@gnome-desktop
@core
@base-x
@chinese-support
xorg-x11-utils
xorg-x11-server-Xnest

转载请注明出处:https:////www.cnblogs.com/zhangxingeng/p/12549346.html


以上是关于kickstart详解的主要内容,如果未能解决你的问题,请参考以下文章

Linux中的无人职守安装脚本kickstart详解

pxe+kickstart自动装机详解

Kickstart文件详解

kickstart安装系统原理详解

详解CentOS 7中PXE高效批量网络装机与kickstart无人值守技术

Saltstack module genesis 详解