背景:
我们日常在管理KVM虚拟机主要使用的功能是批量克隆、修改、删除、启动、关闭KVM虚拟机,其中克隆、修改是最为重要的功能,因为其他功能我们用virt-manager
也可以方便的操作,比如启动、关闭。虽然virt-manager
也可以实现克隆、修改之类的操作,但是你若有一大批需要创建的虚拟机,那么它将是痛苦的,而zzxia-kvm-manage
项目就是为了解决这个问题,你只需要通过编辑一个markdown表格文件就可以实现批量虚拟机的克隆和IP地址修改之类的预设操作,在此过程中无需人工干预,省心省力。项目地址:zzxia-kvm-manage
具体使用方法请参考项目主页,我这里展示下配置文件与列表文件:
- 虚拟机列表文件:
名称 | CPU | 内存 | 网卡 | IP地址 | IP掩码 | IP网关 | DNS | 域名 | 磁盘IMG路径 | 备注 |
---|---|---|---|---|---|---|---|---|---|---|
v-192-168-11-190-deploy | 1 | 2 | br1 | 192.168.11.190 | 24 | 192.168.11.1 | ||||
v-192-168-11-191-mast | 4 | 8 | br1 | 192.168.11.191 | 24 | 192.168.11.1 | ||||
v-192-168-11-192-node | 4 | 8 | br1 | 192.168.11.192 | 24 | 192.168.11.1 | 8.8.8.8 | zj.lan | /var/lib/libvirt/images22 | |
v-192-168-11-193-node | 4 | 8 | br1 | 192.168.11.193 | 24 | 192.168.11.1 | 1.1.1.1, 2.2.2.2 | hb.lan | ||
v-192-168-11-194-etcd | 2 | 4 | br1 | 192.168.11.194 | 24 | 192.168.11.1 | ||||
v-192-168-11-195-etcd | 2 | 4 | br1 | 192.168.11.195 | 24 | 192.168.11.1 | ||||
v-192-168-11-196-etcd | 2 | 4 | br1 | 192.168.11.196 | 24 | 192.168.11.1 | ||||
v-192-168-11-197-repo | 2 | 4 | br1 | 192.168.11.197 | 24 | 192.168.11.1 | /disk2/images |
为空的地方表示使用默认值
- 默认值设置:
$ cat kvm.env.sample
#!/bin/bash
# 静默方式
export QUIET='no' #--- yes|no
# KVM环境参数
export KVM_XML_PATH='/etc/libvirt/qemu' #-- KVM虚拟XML配置文件路径(CENTOS下XML的默认路径,如果是UBUNTU,请修改)
# 模板虚拟机参数
export TEMPLATE_VM_ROOT_VOLUME='/dev/mapper/cl-root' #-- 模板虚拟机中挂载到【/】的卷,可以是逻辑卷【例如:/dev/mapper/cl-root】,也可以是普通磁盘分区【例如:/dev/sda1】
export TEMPLATE_VM_NET_CONF_FILE_CENTOS='/etc/sysconfig/network-scripts/ifcfg-eth0' #-- 模板虚拟机CentOS系统内的网卡配置文件
# 新虚拟机默认参数,特殊值可以在【my_vm.list】中指定
export VM_DEFAULT_DNS='192.168.11.3,192.168.11.4' #-- 默认DNS,最多两个DNS服务器,中间用【,】分隔
export VM_DEFAULT_DOMAIN='zjlh.lan' #-- 默认域名
export VM_DEFAULT_IMG_PATH='/var/lib/libvirt/images' #-- 虚拟机磁盘文件默认路径