安装多台Linux操作系统时,需要回答多次关于设定的问题,用文件方式记录所有安装过程中问题的答案,并让所有需要安装的主机自动读取,记录安装过程中所有问题的答案的文件:kickstart脚本
一、实验环境:
1.关闭火墙
2.selinux关闭
3.httpd服务开启
4.软件仓库正常工作
二、共享anaconda-ks.cfg文件
1.此主机安装过程中的记录所有问题的答案的文件:kickstart脚本—anaconda-ks.cfg文件
设定权限位644后将这个文件发布共享出去:
2.cfg文件内容
3.修改cfg文件内容
开机时网卡自动激活,网卡工作模式为dhcp,使新建的虚拟机可以从dhcp服务器中获取IP来访问资源。
设定超级用户的密码:openssl passwd -6
输入明文密码后得到加密的字符串,将其复制到cfg文件中。
添加测试命令
修改后的cfg文件
三、测试
1,手动安装时输入ks地址即可自动创建
2.也可通过脚本全自动安装虚拟机,将ks文件添加到脚本中。
(1.)新建虚拟机脚本
#!/bin/bash
test -z $1 && {
echo "请输入虚拟机名称"
exit
}
test -e "/var/lib/libvirt/images/$1.qcow2" && {
echo "$1 已经存在 \ "
echo "请重新输入"
exit
}
qemu-img create -f qcow2 /var/lib/libvirt/images/$1.qcow2 8G -o lazy_refcounts=off
virt-install \
--name $1 \
--memory 2048 \
--vcpus 1 \
--disk /var/lib/libvirt/images/$1.qcow2,size=8,bus=virtio \
--network bridge=br0,model=virtio \
--location http://172.25.254.1/rhel8.2 \
--extra-args "ks=http://172.25.254.1/qyq.ks/qyq.cfg" \
--os-variant rhel8.2 &> /dev/null &
(2)新建快照脚本
#!/bin/bash
test -z $1 && {
echo "请输入虚拟机名称"
exit
}
test -e "/var/lib/libvirt/images/$1.qcow2" && {
echo "$1 已经存在 \ "
echo "请重新输入"
exit
}
qemu-img create -f qcow2 -b /var/lib/libvirt/images/westos.qcow2 /var/lib/libvirt/images/$1.qcow2
virt-install \
--name $1 \
--memory 2048 \
--vcpus 1 \
--disk /var/lib/libvirt/images/$1.qcow2,size=8,bus=virtio \
--network bridge=br0,model=virtio \
--import \
--os-variant rhel8.2 &> /dev/null &
(3)虚拟机恢复到快照脚本:先删除当前虚拟机,然后在按原始母盘重新生成一个
#!/bin/bash
test -z $1 && {
echo "请输入虚拟机名称"
exit
}
test -e $1 "/etc/libvirt/qemu/$1.xml" || {
echo "$1 已经存在!!"
exit
}
virsh destory $1
rm -fr /var/lib/libvirt/images/$1.qcow2
qemu-img create -f qcow2 -b /var/lib/libvirt/images/westos.qcow2 /var/lib/libvirt/images/$1.qcow2
virsh start $1
virt-viewer $1 &