shell centos 7 一键部署 KVM软件脚本

这个脚本有限地方还需要完善下

设计思路:

1、创建检查内核函数 check_kernel()

2、创建升级内核函数 update_kernel()

3、创建检查是否支持虚拟化函数 check_virtual()

4、创建检查操作系统函数 check_system()

5、创建检查网络函数 check_network()

6、创建检查YUM源函数 check_yum()

7、创建安装KVM依赖包函数 install_kvm()

8、创建卸载清理KVM依赖包函数 uninstall_kvm()

9、创建加载启动支持nmcli的模块或工具函数 restart_nmcli_set()

CentOS中自动加载802.1q模块:modprobe 8021q

启动nmcli服务:systemctl restart NetworkManager

Centos7网卡配置命令nmcli

https://blog.csdn.net/xdy762024688/article/details/132085304?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132085304%22%2C%22source%22%3A%22xdy762024688%22%7Dhttps://blog.csdn.net/xdy762024688/article/details/132085304?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132085304%22%2C%22source%22%3A%22xdy762024688%22%7D

10、创建安装KVM运行环境包函数 install_kvm_runtime()

11、创建卸载清理KVM运行环境包函数 uninstall_kvm_runtime()

12、创建提示信息函数 Usage()

13、创建case 选项 case $arg in

case $arg in

i|install)

echo "一键部署KVM虚拟化环境"

install_kvm_runtime

;;

u|uninstall)

echo "一键清理KVM虚拟化环境"

uninstall_kvm_runtime

;;

h|help)

Usage

;;

*)

Usage

;;

esac

cat kvm-install-deploy.sh

#!/bin/sh
#Author:norman.li
#Data: 2022-01-24
#Descript:该脚本为一键部署KVM环境

#检查内核
check_kernel() {
    kernel_version=`uname -r | awk -F '-' '{print $2}' | awk -F '.' '{print $1}'`
    echo "${kernel_version}"
}

#升级内核
update_kernel() {
    yum -y update kernel*
}

#检查是否支持虚拟化
check_virtual() {
    vmx=`grep -E -o 'svm|vmx' /proc/cpuinfo`
    echo ${vmx}
}

#检查操作系统
check_system() {
    system_name=`cat /etc/redhat-release`
    echo "${system_name}"
}

#检查网络
check_network() {
    echo "check network"
}

#检查YUM源
check_yum() {
    echo "check yum list"
}

#安装KVM依赖包
install_kvm() {
    yum -y install qemu-kvm libvirt libvirt-python libguestfs-tools libguestfs-tools-c virt-install
    chkconfig --level 35 libvirtd on
    service libvirtd start
}

#卸载清理KVM环境包
uninstall_kvm() {
    chkconfig --level 35 libvirtd off
    service libvirtd stop
    yum -y remove qemu-kvm libvirt libvirt-python libguestfs-tools libguestfs-tools-c virt-install
}

#加载启动支持nmcli的模块或工具
restart_nmcli_set() {
    modprobe 8021q
    systemctl restart NetworkManager
}

#安装KVM运行环境包

install_kvm_runtime() {
    echo "install kvm runtime"
    check_system
    check_kernel
    check_virtual
    check_network
    check_yum
    install_kvm
    restart_nmcli_set
}

uninstall_kvm_runtime() {
    echo "uninstall kvm runtime"
    uninstall_kvm
}

Usage() {
    echo "命令格式: $0 [功能选项] 详见示例!"
    echo "功能选项:"
    echo "    [-i] 一键部署KVM虚拟化环境"
    echo "    [-u] 一键清理KVM虚拟化环境"

    echo "使用示例:"
    echo "    1.一键部署KVM虚拟化环境:	        $0 -i"
    echo "    2.一键清理KVM虚拟化环境:	        $0 -u"
}

arg=`echo $1 | tr -d '-'`
case $arg in
    i|install)
	    echo "一键部署KVM虚拟化环境"
	    install_kvm_runtime
	    ;;
    u|uninstall)
        echo "一键清理KVM虚拟化环境"
	    uninstall_kvm_runtime
        ;;
    h|help)
        Usage
        ;;
    *)
        Usage
        ;;
esac
相关推荐
矛取矛求3 小时前
Linux如何更优质调节系统性能
linux
内核程序员kevin4 小时前
在Linux环境下使用Docker打包和发布.NET程序并配合MySQL部署
linux·mysql·docker·.net
kayotin4 小时前
Wordpress博客配置2024
linux·mysql·docker
Ztiddler5 小时前
【Linux Shell命令-不定期更新】
linux·运维·服务器·ssh
小小不董5 小时前
Oracle OCP认证考试考点详解082系列16
linux·运维·服务器·数据库·oracle·dba
a1denzzz6 小时前
Linux系统的网络设置
linux·服务器·网络
ac.char6 小时前
在CentOS下安装RabbitMQ
linux·centos·rabbitmq
m0_519523106 小时前
Linux——简单认识vim、gcc以及make/Makefile
linux·运维·vim
mit6.8247 小时前
[Docker#4] 镜像仓库 | 部分常用命令
linux·运维·docker·容器·架构
zyp2468107 小时前
Linux之DNS服务器
linux·运维·服务器