欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

深入解析 Kickstart 配置文件的各项参数详细指南

最编程 2024-02-18 21:35:19
...

kickstart是什么?
        KickStart是一种无人值守的安装方法。它的工作原理时在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成KickStart安装文件的机器)出现要填写参数的情况,安装程序首选会去查找KickStart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装着手工干预了。所以如果KickStart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装着完全可以只告诉安装程序从何处去ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置重启系统,并结束安装。
如何执行kickstart安装
        kickstart 安装可以使用本地光盘,本地硬盘驱动器,或通过 NFS,FTP,HTTP 来执行.
        要使用 kickstart,必须:
                1.创建一个kickstart文件.
                2.创建有kickstart文件的引导介质或者使这个文件在网络上可用.
                3.筹备安装树.
                4.开始kickstart安装.
创建kickstart文件
        kickstart文件是一个简单的文本文件,它包含了一个项目列表,每个项目由一个关键字来识别.可以用「Kickstart 配置」应用程序创建它或是自己从头编写.红帽企业Linux安装程序也根据在安装过程中的选择创建一个简单的kickstart文件,这个文件被写入到/root/anaconda-ks.cfg.可以用任何能够把文件保存为ASCII文本的文本编辑器或字处理器来编辑它.
        首先,在创建kickstart文件时留意下列问题:
                1.每节必须按顺序指定.除非特别申明,每节内的项目则不必按序排列.小节的顺序为:
                        命令部分,这里应该包括必需的选项.
                        %packages部分,这部分选择需要安装的软件包.
                        %pre和%post部分,这两个部分可以按任何顺序排列而且不是必需的.
                2.不必需的项目可以被省略.
                3.如果忽略任何必需的项目,安装程序会提示用户输入相关的项目的选择,就象用户在典型的安装过程中所遇到的一样.一旦用户进行了选择,安装会以非交互的方式(unattended)继续(除非找到另外一个没有指定的项目).
                4.以井号("#")开头的行被当作注释行并被忽略.
        对于 kickstart 升级,下列项目是必需的:
                1.语言
                2.安装方法
                3.设备规格(如果这个设备是在安装过程中所需要的)
                4.键盘设置
                5.upgrade 关键字
                6.引导装载程序配置
                7.如果任何其他的项目被指定为upgrade,这些项目将被忽略(注意这包括了软件包选择).

命令段:
              必备命令
              可选命令

       软件包段:

              %packages  :表示开始,
              @group   :要安装的包组
              package  :要安装的包
              -package :不安装的包,但被依赖的话,即使指定不安装也会被安装
              %end      :表示结束

        脚本段:

              %pre 
                   安装前脚本:安装过程开始前要执行的脚本
                   注意:此时的linux系统环境为微缩版环境,因此脚本应该简单
               %post 
                    安装后脚本:安装后执行的脚本
                    注意:脚本执行环境为完整的已安装完成的脚本

kickstart命令选项
        下面的选项可以放入kickstart文件.如果喜欢使用图形化的界面来创建kickstart文件,可以使用"Kickstart 配置"应用程序.(注:如果某选项后面跟随了一个等号(=),它后面就必须指定一个值.在示例命令中,括号([])中的选项是命令的可选参数.)

        autopart(可选)
                自动创建分区,大于1GB的根分区(/),交换分区和适合于不同体系结构的引导分区.一个或多个缺省分区的大小可以用part指令重新定义.

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

        autostep(可选)
                和interactive相似,除了它进入下一屏幕,它通常用于调试.
                --autoscreenshot,安装过程中的每一步都截屏并在安装完成后把图片复制到/root/anaconda-screenshots.这对于制作文档很有用.

        auth或authconfig(必需)
                为系统设置验证选项.这和在安装后运行的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分发用户和组的信息,缓存就尤其有用.

        bootloader(必需)
                指定引导装载程序怎样被安装.对于安装和升级,这个选项都是必需的.
                --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,升级现存的引导装载程序配置,保留其中原有的项目.该选项仅可用于升级.
        clearpart(可选)
                在创建新分区之前,从系统上删除分区.默认不会删除任何分区.
                注:如果使用了clearpart命令,--onpart命令就不能够用在逻辑分区上.
                --all,删除系统上所有分区.
                --drives=,指定从哪个驱动器上清除分区.
                        例如,下面的命令清除了主IDE控制器上的前两个驱动器上所有分区
                        clearpart --drives=hda,hdb --all
                --initlabel,根据不同体系结构把磁盘标签初始化为缺省设置(例如,msdos用于x86而gpt用于Itanium).当安装到一个崭新的硬盘时,这很有用,安装程序不会询问是否应该初始化磁盘标签.
                --linux,删除所有Linux分区.
                --none(缺省),不要删除任何分区.

        cmdline(可选)
                在完全的非交互式的命令行模式下进行安装.任何交互式的提示都会终止安装.这个模式对于有x3270控制台的IBM System z系统很有用.

        device(可选)
                在多数的PCI系统里,安装程序会正确地自动探测以太网卡和SCSI卡.然而,在老的系统和某些PCI系统里,kickstart需要提示来找到正确的设备.device命令用来告诉安装程序安装额外的模块,它有着这样的格式:
                device <type><moduleName> --opts=<options>
                <type>,用scsi或eth代替
                <moduleName>,使用应该被安装的内核模块的名称来替换.
                --opts=,传递给内核模块的选项.注意,如果把选项放在引号里,可以传递多个选项.
                        例如:--opts="aic152x=0x340 io=11"                                               
        driverdisk(可选)
                可以在kickstart安装过程中使用驱动软盘.必须把驱动软盘的内容复制到系统的硬盘分区的根目录下.然后必须使用driverdisk 命令来告诉安装程序到哪去寻找驱动磁盘.
                driverdisk <partition> [--type=<fstype>]
                另外,也可以为驱动程序盘指定一个网络位置:
                driverdisk --source=ftp://path/to/dd.img
                driverdisk --source=http://path/to/dd.img
                driverdisk --source=nfs:host:/path/to/img
                        <partition>,包含驱动程序盘的分区.
                        --type=,文件系统类型(如:vfat,ext2,ext3).

        firewall(可选)
                这个选项对应安装程序里的「防火墙配置」屏幕:
                firewall --enabled|--disabled [--trust=] <device> [--port=]
                --enabled或者--enable,拒绝不是答复输出请求如DNS答复或DHCP请求的进入连接.如果需要使用在这个机器上运行的服务,可以选择允许指定的服务穿过防火墙.
                --disabled或--disable,不要配置任何iptables规则.
                --trust=,在此列出设备,如eth0,这允许所有经由这个设备的数据包通过防火墙.如果需要列出多个设备,使用--trust eth0 --trust eth1.不要使用以逗号分隔的格式,如--trust eth0, eth1.
                <incoming>,使用以下服务中的一个或多个来替换,从而允许指定的服务穿过防火墙.
                        --ssh
                        --telnet
                        --smtp
                        --http
                        --ftp
                --port=,可以用端口:协议(port:protocal)格式指定允许通过防火墙的端口.
                        例如,如果想允许IMAP通过的防火墙,可以指定imap:tcp.还可以具体指定端口号码,要允许UDP分组在端口1234通过防火墙,输入1234:udp.要指定多个端口,用逗号将它们隔开.

        firstboot(可选)
                决定是否在系统第一次引导时启动"设置代理".如果启用,firstboot软件包必须被安装.如果不指定,这个选项是缺省为禁用的.
                --enable或--enabled,系统第一次引导时,启动"设置代理".
                --disable或--disabled,系统第一次引导时,不启动"设置代理".
                --reconfig,在系统引导时在重配置(reconfiguration)模式下启用"设置代理".这个模式启用了语言,鼠标,键盘,根密码,安全级别,时区和缺省网络配置之外的选项.

        halt(可选)
                在成功地完成安装后关闭系统.这和手工安装相似,手工安装的anaconda会显示一条信息并等待用户按任意键来重启系统.在kickstart安装过程中,如果没有指定完成方法(completion method),将缺省使用reboot选项.
                halt选项基本和shutdown -h命令相同.
                关于其他的完成方法,请参考kickstart的poweroff,reboot和shutdown选项.

        graphical(可选)
                在图形模式下执行kickstart安装.kickstart安装默认在图形模式下安装.

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

        cdrom
                从系统上的第一个光盘驱动器中安装.

        harddrive
                从本地驱动器的vfat或ext2格式的红帽安装树来安装.
                --biospart=,从BIOS分区来安装(如82).
                --partition=,从分区安装(如sdb2).
                --dir=,包含安装树的variant目录的目录.
                        例如:harddrive --partition=hdb2 --dir=/tmp/install-tree

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

        url
                通过FTP或HTTP从远程服务器上的安装树中安装.
                        例如:url --url http:///

>
                        或:url --url ftp://:@/>

        ignore disk(可选)
                用来指定在分区,格式化和清除时anaconda不应该访问的磁盘.这个命令有一个必需的参数,就是用逗号隔开的需要忽略的驱动器列表.
                例如:ignoredisk --drives=[disk1,disk2,...]

        interactive(可选)
                在安装过程中使用kickstart文件里提供的信息,但允许检查和修改给定的值.将遇到安装程序的每个屏幕以及kickstart文件里给出的值.通过点击"下一步"接受给定的值或是改变值后点击"下一步"继续.请参考autostep命令.

        iscsi(可选)
                issci --ipaddr= [options].
                --target
                --port=
                --user=
                --password=

        iscsiname(可选)

        key(可选)
                指定安装密钥,它在软件包选择和获取支持时设别系统的时候是必需的.这个命令是红帽企业Linux-specific,它对Fedora来说没有意义并且会被忽略.
                --skip,跳过输入密钥.通常,如果没有key命令,anaconda将暂停并提示输入密钥.如果没有密钥或不想提供它,这个选项允许继续自动化安装.

        keyboard(必需)
                设置系统键盘类型.这里是 i386,Itanium,和 Alpha 机器上可用键盘的列表:
                be-latin1, bg, br-abnt2, cf, cz-lat2, cz-us-qwertz, de, de-latin1,
                de-latin1-nodeadkeys, dk, dk-latin1, dvorak, es, et, fi, fi-latin1,
                fr, fr-latin0, fr-latin1, fr-pc, fr_CH, fr_CH-latin1, gr, hu, hu101,
                is-latin1, it, it-ibm, it2, jp106, la-latin1, mk-utf, no, no-latin1,
                pl, pt-latin1, ro_win, ru, ru-cp1251, ru-ms, ru1, ru2,  ru_win, 
                se-latin1, sg, sg-latin1, sk-qwerty, slovene, speakup,  speakup-lt,
                sv-latin1, sg, sg-latin1, sk-querty, slovene, trq, ua,  uk, us, us-acentos
                文件/usr/lib/python2.2/site-packages/rhpl/keyboard_models.py 也包含这个列表而且是 rhpl 软件包的一部分.

        lang(必需)
                设置在安装过程中使用的语言以及系统的缺省语言.例如,要把语言设置为英语,kickstart文件应该包含下面的一行:
                lang en_US
                文件/usr/share/system-config-language/locale-list里每一行的第一个字段提供了一个有效语言代码的列表,它是system-config-language软件包的一部分.
                文本模式的安装过程不支持某些语言(主要是中文,日语,韩文和印度的语言).如果用lang命令指定这些语言中的一种,安装过程仍然会使用英语,但是系统会缺省使用指定的语言.

        langsupport(不赞成)
                langsupport关键字已经被取消而且使用它将导致屏幕出现错误信息及终止安装.作为代替,应该在kickstart文件里的%packages 部分列出所支持的语言的支持软件包组.例如,要支持法语,应该把下面的语句加入到
                %packages: