• 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
    

  • 相关阅读:
    代码review之 isInfoEnable()
    sdk、jdk、jre、jvm、jdt、cdt分别都是什么东西
    思考总结: 决胜21点 开篇 概率问题
    Java多线程开发系列之四:玩转多线程(线程的控制2)
    Java多线程开发系列之四:玩转多线程(线程的控制1)
    Java多线程开发系列之三:线程这一辈子(线程的生命周期)
    Java多线程开发系列之二:如何创建多线程
    [系列] Gin框架
    [系列] Gin框架
    [系列] Gin 框架
  • 原文地址:https://www.cnblogs.com/zhangxingeng/p/12549346.html
Copyright © 2020-2023  润新知