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
相关推荐
脚踏实地的大梦想家40 分钟前
【Docker】P2 Docker环境构建准备:MacOS 与 Linux
linux·macos·docker
山城码农笑松哥1 小时前
国产凝思debian系Linux离线安装rabbitmq教程步骤
linux·debian·rabbitmq
抓饼先生1 小时前
C++ 20 视图view笔记
linux·开发语言·c++·笔记·c++20
狂浪天涯1 小时前
Android Security | SEAndroid 综述
linux
__如风__3 小时前
内网环境下ubuntu 20.04搭建深度学习环境总结
linux·服务器·ubuntu
学c语言的枫子3 小时前
Linux文件IO——系统IO
linux·运维·服务器
敲上瘾3 小时前
Docker网络实战:容器通信与隔离之道
linux·网络·docker·微服务·容器
知北游天4 小时前
Linux网络:初识网络
linux·运维·网络
染指11104 小时前
13.渗透-.Linux基础命令(五)-用户管理(修改用户密码)
linux·运维·服务器·linux命令
wheeldown4 小时前
【Linux】面试常考!Linux 进程核心考点:写时拷贝优化原理 + 进程等待实战,一篇理清进程一生
linux·运维·服务器·面试·php