KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
1.首先我们需要安装一下kickstart,这里我们使用yum进行安装
yum install system-config-kickstart -y
因为我个人机器中已经安装过了所以提示Nothing to do
接下来我们开启kickstart
system-config-kickstart
3. kickstart安装方式,注意是执行一个全新的安装,应为我个人的源挂载在httpd服务下的,所以选择了HTTP,如果你的源也是这样的请保证可以访问
4. Boot Loader Options,标记部分为正确选项,表示安装一个新的引导
5. Prations Information分区信息,选项都选标记部分,后面需要添加三个分区,分别为boot、swap、和根/分区,前两个可以指定大小,
6. 网络配置选择DHCP方式,网络设备的话填写eth0就OK了,下面的(Authentication)认证不用选,默认就可以
8. 防火墙以后的选项都可以不用配置,但是为了演示某些配置的效果,我在安装完成之后配置了一个执行脚本用来配置虚拟机的yum源和阻止所有人的ssh连接
9. 这样基本的配置就没问题了,我们需要把配置完的信息保存为ks.cfg文件,并且放到可以被访问到的服务或者目录下,我的话就直接保存在了httpd服务的根目录下了
到了这基本的应答脚本就算是配置完成了,但是通过这种应答设置还不完善,我们需要为应答脚本手动指定需要在安装过程中安装的软件包
10. 为自动应答脚本添加packages选项,下图中的最后三行为手动在你的ks.cfg文件中添加的,请注意格式!!!
11.到这里我们的自动应答脚本就算完成了,我们来看一下最后的配置文件吧,直接上配置文本
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$A3vhYrc8$mISo4Or6RZkMkWOusdEkE.
# System timezone
timezone Africa/Abidjan
# Use network installation
url --url="http://172.25.254.36/iso"
# System language
lang en_US
# Firewall configuration
firewall --disabled
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
text
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Network information
network --bootproto=dhcp --device=eth0
# Reboot after installation
reboot
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=200
part swap --fstype="swap" --size=500
part / --fstype="xfs" --grow --size=1
%post
cat >> /etc/yum.repos.d/yum.repo <//172.25.254.36/iso
gpgcheck=0
end
echo sshd:ALL >>/etc/hosts.deny
%end
%packages
@base
%end
自动应答脚本配置完了,我们就可以结合虚拟机安装脚本来进行安装了,以下就是我们的虚拟机安装脚本结合自动应答脚本实现虚拟机的自动安装
我们可以将其保存在/bin/中,名字为virt-install.sh
#!/bin/bash
virt-install \
--name $* \
--vcpus 1 \
--ram 1024 \
--file /var/lib/libvirt/images/$*.qcow2 \
--file-size 8 \
--location http://172.25.254.36/iso \
--extra-args "ks=http://172.25.254.36/ks.cfg" &
执行虚拟机安装程序
[root@foundation ~] virt-install.sh
正常安装过程,执行我们在自动应答脚本中设置的安装后脚本,左边的划线部分对应右边设置的脚本
如果你很幸运顺利完成了安装,那么恭喜你没有学到多少,下面我将列出一些常见安装过程中的错误状态以及错误原因:
3.unknow error,一般也是因为引导的问题,所以我们在选择引导时一定要勾选所有选项的第一个,然后正确分区。