部署环境:
系统:CentOS Linux release 7.9.2009 (Core){带图形化}
网络:外网通
注意事项:需开启cpu虚拟化支持,需提前看好自己网卡名称,如ens33
脚本如下:
#!/bin/bash
#function:install KVM
#author:tommypeng 20220707 final version
###############root用户判断#######################
if
[ "$USER" != "root" ]
then
echo "错误:非root用户,权限不足!"
exit 0
fi
############防火墙与高级权限##########
systemctl stop firewalld && systemctl disable firewalld && echo "防火墙已经关闭"
sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config && echo "关闭selinux"
##############脚本运行前置条件#################
echo "主机CPU需要开启虚拟化引擎:Intel-VT-X 或者AMD-V"
sleep 5
read -p "以上环境是否已经符合要求?请输入yes 或者 no :" guaiguai
case $guaiguai in
yes)
echo "真是个乖孩子"
;;
no)
echo "完犊子了,因为你的不听话,只能退出脚本运行了,你还是慢慢敲命令吧!"
exit 0
;;
*)
echo "你好像不认识汉字也不认识英文,要不要我推荐你去厚街小学上学啊"
exit 1
esac
###############网络检查#################
ping -c 3 www.baidu.com
if
[ $? = 0 ]
then
echo "外网通讯良好!"
else
echo "丫的你在逗我吗?网都没有安装个毛线!"
exit 1
fi
##############备份及更新源################
read -p "是否更新镜像源到阿里云,请输入yes 或者 no :" wokaohaoshuai
case $wokaohaoshuai in
yes)
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
;;
no)
echo "看来你的镜像源蛮快的"
;;
*)
echo "你好像不认识汉字也不认识英文,要不要我推荐你去厚街小学上学啊"
exit 1
esac
yum makecache && echo "生成yum缓存"
###########KVM安装##############
modprobe kvm && echo -e "kvm内核启用成功"
yum install -y qemu-kvm qemu-img virt-manager libvirt libvirt-python virt-manager libvirt-client virt-install virt-viewer
if [ $? -eq 0 ]
then
echo "kvm相关软件包安装成功"
else
echo "完犊子了,出现致命错误,即将退出"
exit 1
fi
#############网络配置#############
read -p "请输入您的主机网卡名:" ppo
onlyhostIP=$(ip a | grep "inet "|grep "$ppo" | awk '{print $2}' | awk -F '/' '{print $1}')
onlyhostMASk=$(ip a | grep "inet "|grep "$ppo" | awk '{print $2}' | awk -F '/' '{print $2}')
A=$(echo "$onlyhostIP" | awk -F . '{print $1}')
B=$(echo "$onlyhostIP" | awk -F . '{print $2}')
C=$(echo "$onlyhostIP" | awk -F . '{print $3}')
SS1="$A.$B.$C.2"
echo "IPADDR=$onlyhostIP" >>/etc/sysconfig/network-scripts/ifcfg-$ppo
echo "PREFIX=$onlyhostMASK" >>/etc/sysconfig/network-scripts/ifcfg-$ppo
echo "GATEWAY=$SS1" >>/etc/sysconfig/network-scripts/ifcfg-$ppo
echo "DNS1=$SS1" >>/etc/sysconfig/network-scripts/ifcfg-$ppo
echo "BOOTPROTO=static" >>/etc/sysconfig/network-scripts/ifcfg-$ppo
sed -i 's/BOOTPROTO=.*/BOOTPROTO=static/g' /etc/sysconfig/network-scripts/ifcfg-$ppo
echo "BRIDGE=br0" >>/etc/sysconfig/network-scripts/ifcfg-$ppo
cat >> /etc/sysconfig/network-scripts/ifcfg-br0 << EOF
"#HWADDR=00:0C:29:F1:B0:E9
TYPE=Bridge
BOOTPROTO=none
#PROXY_METHOD=none
#BROWSER_ONLY=no
IPADDR=192.168.10.1
PREFIX=24
GATEWAY=192.168.10.254
#DNS1=192.168.145.1
PEERDNS=yes
DEFROUTE=yes
PEEROUTES=YES
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
DEVICE=br0
#UUID=2d182d1c-56e1-323f-be1a-d4ae07b1f614
ONBOOT=yes
#AUTOCONNECT_PRIORITY=-999"
EOF
#sed -i 's/BOOTPROTO=.*/BOOTPROTO=none/g' /etc/sysconfig/network-scripts/ifcfg-br0
ifdown ens33 && ifup ens33
systemctl start libvirtd
systemctl enable libvirtd
echo "完成咯,即将重启"
sleep 10
reboot
运行完脚本可进入图像化界面进入虚拟系统管理器添加管理虚拟机。
对脚本有任何意见请留言!!!!!