KickStart(简称:ks)是一种无人值守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
一、ks文件的生成。ks文件生成有两种方式:
1、在已有的ks模板文件中进行修改(找一台已安装银河麒麟高级服务器操作系统的机器,在/root目录下找到initial-setup-ks.cfg文件修改)
2、使用图形化工具system-config-kickstart生成ks文件,若没有则直接在线安装,执行命令:yum -y install system-config-kickstart
二、ks文件组成
ks文件可分为三部分,第一部分为命令段,用于对系统的基本配置,命令有install、url、Keyboard、Lang、Network、Timezone等;第二部分为软件包段,以%packages开头,%end结尾;第三部分为脚本段,分为安装前脚本,以%pre标识;安装后脚本,以%post标识
从上图可以看出银河麒麟高级服务器操作系统V10SP1安装过程中需人工干预的所有选项,以下为initial-setup-ks.cfg示例。
#命令段 #version=DEVEL # X Window System configuration information xconfig --startxonboot #配置X window,--startxonboot使用图形界面登录系统 # License agreement 同意许可协议 eula --agreed # Use graphical install graphical #以图形化进行安装,或改为text:以文本形式进行安装 # Network information 网络配置 network --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --no-activate network --bootproto=dhcp --hostname=localhost.localdomain ignoredisk --only-use=sda #格式化、分区仅使用sda # Use CDROM installation media cdrom #以本地CD-ROM为源安装系统 # Run the Setup Agent on first boot firstboot --enable #在系统第一次启动时启用“代理设置” # System services services --enabled="chronyd" # Keyboard layouts keyboard --vckeymap=cn --xlayouts='cn' #键盘布局为中文 # System language lang zh_CN.UTF-8 #系统语言是中文,utf8的编码格式 # Root password root密码 rootpw --iscrypted $6$XypESMTZrNXE.HpGTXrUqCcLIvz.It8HHSQAe292kymkwGdh.hum6 # System timezone timezone Asia/Shanghai --isUtc #设定时区为上海 # System bootloader configuration bootloader --location=none #不设定引导记录的位置 autopart --type=lvm #自动分区, # Partition clearing information 在建立新分区前清空系统上原有的分区表,默认不删除分区,--none不移除任何分区,--initlabel初始化磁盘卷标为系统架构的默认卷标 clearpart --none --initlabel #软件包段 %packages @^kylin-desktop-environment #带UKUI GUI的软件包组进行服务器安装 # @^minimal-environment 最小化安装软件包组 kexec-tools %end #脚本段 %post --nochroot #%post包含的脚本默认是在chroot环境运行,--nochroot允许在chroot环境之外运行命令 #####copy kyinfo and LICENSE if [ -e /tmp/.kyinfo ];then echo y | cp -a /tmp/.kyinfo $ANA_INSTALL_PATH/etc/ fi if [ -e /tmp/LICENSE ];then echo y | cp -a /tmp/LICENSE $ANA_INSTALL_PATH/etc/ fi if [ -e /run/install/repo/.kyinfo ];then echo y | cp -a /run/install/repo/.kyinfo $ANA_INSTALL_PATH/etc/ fi if [ -e /run/install/repo/LICENSE ];then echo y | cp -a /run/install/repo/LICENSE $ANA_INSTALL_PATH/etc/ fi ##### kylin postaction ## cdrom install, copy .kylin-post-actions if [ -e /run/install/repo/.kylin-post-actions ];then echo y | cp -a /run/install/repo/.kylin-post-actions /tmp/.kylin-post-actions echo "repo=/run/install/repo" > /tmp/.kylin-repo fi ## copy kylin post scripts in new os if [ -e /tmp/.kylin-post-actions ];then echo y | cp -a /tmp/.kylin-post-actions $ANA_INSTALL_PATH/bin fi if [ -e /tmp/.kylin-repo ];then echo y | cp -a /tmp/.kylin-repo $ANA_INSTALL_PATH/tmp/ fi ## copy and run .kylin-post-actions-nochroot if [ -e /run/install/repo/.kylin-post-actions-nochroot ];then echo y | cp -a /run/install/repo/.kylin-post-actions-nochroot /tmp/.kylin-post-actions-nochroot fi if [ -e /tmp/.kylin-post-actions-nochroot ];then /bin/bash -x /tmp/.kylin-post-actions-nochroot &> $ANA_INSTALL_PATH/var/log/.kylin-post-actions-nochroot.log fi %end %post systemctl disable systemd-networkd-wait-online.service systemctl disable multipathd.service ### do kylin post action if [ -e /bin/.kylin-post-actions ];then /bin/bash -x /bin/.kylin-post-actions &> /var/log/.kylin-post-actions.log fi %end %addon ADDON_placeholder --enable --reserve-mb=1024M %end %anaconda pwpolicy root --minlen=8 --minquality=1 --notstrict --nochanges --notempty pwpolicy user --minlen=8 --minquality=1 --notstrict --nochanges --emptyok pwpolicy luks --minlen=8 --minquality=1 --notstrict --nochanges --notempty %end
三、重新制作iso镜像
1、准备好银河麒麟高级服务器操作系统V10-SP1,将其挂载在/mnt目录下,创建iso目录,将/mnt下内容全部复制到/iso下。并将制作好的ks文件拷贝至该目录下
2、修改启动文件/iso/isolinux/isolinux.cfg,指明ks文件位置
3、使用命令mkisofs重新将/iso目录下所有文件打包为iso镜像,本次以X86架构为例:
mkisofs -o /kylin10.iso -V kylin-V10 -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -T -v /iso/ # /iso/ 为文件所在目录 ,-V 后面面加的内容为ISO挂载上去显示的名称,-o 后面的/kylin10.iso为新生成的iso镜像所在目录及名称
四、将打包好的iso镜像用U盘制作启动盘或刻录至光盘,选择从U盘或光盘启动,即可实现自动化的安装了(注:银河麒麟高级服务器操作系统V10SP2需要单独指定安装源)。