一个 KVM 虚拟机克隆脚本

在 Ubuntu18 上安装 KVM 这件事情其实是很简单的, 就是安装那么几个软件包,配置好 bridge ,启动 libvirtd 服务即可。配置 /etc/netplan/50-cloud-init.yaml 如下:

原始的网卡叫 eno1,原来写在 ethernets 部分, 现在放到 bridges 里面,设置静态 IP 地址,设置好网关。 # netplan apply 一下,用 networkctl status -a 命令可以看到:

我们知道这块 virbr0 虚拟网卡就是以后所有 KVM 的通信的主要“交通工具”了。
第一次创建一台虚拟机需要使用图形界面(virt-manager 和 virt-viewer):

virt-install –name=centos-00 \
–vcpus=1 \
–memory=1024 \
–cdrom=/opt/iso/CentOS-7-x86_64-Minimal-1708.iso \
–disk size=5
–os-variant=centos7.0

这个 os-variant 的值,可以通过 $ osinfo-query os 命令来查看

挂接上 CRROM 后,进入 GUI, 就可以安装 CentOS7 最小化的操作系统了。
安装完成之后,我们可以根据“腾讯云 CentOS73 初始镜像上安装 LAMP/LNMP”里的流程,把其他需要安装的软件包都安装好。
这样,我们就得到了一个叫做 centos-00 的模版虚拟机
利用中秋节的假日,写了一个克隆的脚本,截屏成两部分。

!/bin/bash
#
克隆 CentOS KVM 虚拟机
版权所无:上海甬洁网络科技有限公司 (info@yj777.cn)
微信公众号: yj777-cn (甬洁网络科技)
创建日期: 2019年9月13日
最后修改: 2019年9月13日 17:18 (北京时间)
#
#
入参:
OLD: 原始克隆的 domain 必须事先 shutdown
DOM: 新的 domain 名称
IP: 新的 domain 要配置的静态 IP
预备知识:
宿主机端:KVM, avahi-daemon, virsh, virt-clone, virt-sysprep
前提:
宿主机默认网络 default , 配置 DHCP 网段,同时指定特定的 MAC 地址为给定的静态 IP
一个已经安装了 avahi-daemon 的 CentOS7 虚拟机模版,以及其他(例如 LNMP)服务
客户机要求配置静态 IP
客户机必须已经安装 qemu-agent ,客户机的网卡设备名为 eth0

有了这个脚本,我们只要运行如下的命令, 就可以克隆 n 个 CentOS。
$ ./clone.sh centos-00 centos-06 192.168.7.166

作者: 甬洁网络

--移动互联网&物联网技术提供商