kickstart自动应答脚本生成及虚拟机自动安装

来源:互联网 发布:ios10软件不受信任 编辑:程序博客网 时间:2024/06/15 07:08

KickStart是什么,有什么作用

KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

kickstart为rhel7.2虚拟机安装生成一个自动应答脚本操作演示

1.首先我们需要安装一下kickstart,这里我们使用yum进行安装

yum install system-config-kickstart -y

这里写图片描述
因为我个人机器中已经安装过了所以提示Nothing to do
接下来我们开启kickstart

system-config-kickstart

2. kickstart基本配置,标记部分都为必选或者必填
这里写图片描述

3. kickstart安装方式,注意是执行一个全新的安装,应为我个人的源挂载在httpd服务下的,所以选择了HTTP,如果你的源也是这样的请保证可以访问
这里写图片描述

4. Boot Loader Options,标记部分为正确选项,表示安装一个新的引导
这里写图片描述

5. Prations Information分区信息,选项都选标记部分,后面需要添加三个分区,分别为boot、swap、和根/分区,前两个可以指定大小,
这里写图片描述

剩下的容量都分配给根就可以了
这里写图片描述

6. 网络配置选择DHCP方式,网络设备的话填写eth0就OK了,下面的(Authentication)认证不用选,默认就可以
这里写图片描述

7. 防火墙的两个配置都disable掉就可以了
这里写图片描述

8. 防火墙以后的选项都可以不用配置,但是为了演示某些配置的效果,我在安装完成之后配置了一个执行脚本用来配置虚拟机的yum源和阻止所有人的ssh连接
这里写图片描述

9. 这样基本的配置就没问题了,我们需要把配置完的信息保存为ks.cfg文件,并且放到可以被访问到的服务或者目录下,我的话就直接保存在了httpd服务的根目录下了
这里写图片描述

到了这基本的应答脚本就算是配置完成了,但是通过这种应答设置还不完善,我们需要为应答脚本手动指定需要在安装过程中安装的软件包

10. 为自动应答脚本添加packages选项,下图中的最后三行为手动在你的ks.cfg文件中添加的,请注意格式!!!
这里写图片描述

11.到这里我们的自动应答脚本就算完成了,我们来看一下最后的配置文件吧,直接上配置文本

#platform=x86, AMD64, or Intel EM64T#version=DEVEL# Install OS instead of upgradeinstall# Keyboard layoutskeyboard 'us'# Root passwordrootpw --iscrypted $1$A3vhYrc8$mISo4Or6RZkMkWOusdEkE.# System timezonetimezone Africa/Abidjan# Use network installationurl --url="http://172.25.254.36/iso"# System languagelang en_US# Firewall configurationfirewall --disabled# System authorization informationauth  --useshadow  --passalgo=sha512# Use text mode installtext# SELinux configurationselinux --disabled# Do not configure the X Window Systemskipx# Network informationnetwork  --bootproto=dhcp --device=eth0# Reboot after installationreboot# System bootloader configurationbootloader --location=mbr# Clear the Master Boot Recordzerombr# Partition clearing informationclearpart --all --initlabel# Disk partitioning informationpart /boot --fstype="xfs" --size=200part swap --fstype="swap" --size=500part / --fstype="xfs" --grow --size=1%postcat >> /etc/yum.repos.d/yum.repo <<end[halo]name=haloooobaseurl=http://172.25.254.36/isogpgcheck=0endecho sshd:ALL >>/etc/hosts.deny%end%packages@base%end

结合自动应答脚本写一个虚拟机自动安装程序

自动应答脚本配置完了,我们就可以结合虚拟机安装脚本来进行安装了,以下就是我们的虚拟机安装脚本结合自动应答脚本实现虚拟机的自动安装
我们可以将其保存在/bin/中,名字为virt-install.sh

#!/bin/bashvirt-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

正常执行之后过程中截图,已经开始安装包了
这里写图片描述

正常安装过程,执行我们在自动应答脚本中设置的安装后脚本,左边的划线部分对应右边设置的脚本
这里写图片描述
如果你很幸运顺利完成了安装,那么恭喜你没有学到多少,下面我将列出一些常见安装过程中的错误状态以及错误原因:

1.磁盘分区错误
这里写图片描述

2. 引导问题
这里写图片描述

3.unknow error,一般也是因为引导的问题,所以我们在选择引导时一定要勾选所有选项的第一个,然后正确分区。

这里写图片描述

出现引导或者磁盘问题,一般要检查下面的选项是否正确
这里写图片描述
4. 网络配置问题,要确认网络设备和网络方式是否正确
这里写图片描述