使用KVM通过Python和Shell操作虚拟机
裏ではvirshコマンドをたたくshをpythonから呼び出す構成となっている。これは、後にdiscord.pyと連携するためである。
作成
请解释以下内容,并提供一个选项:
dep.sh
#!/bin/bash
cd `dirname $0`
virt-clone --original ubuntu1 --name ubuntu-$1 --file /var/lib/libvirt/images/ubuntu-$1.qcow2
virt-edit -d ubuntu-$1 /etc/netplan/00-installer-config.yaml -e "s/172.24.20.12/172.24.20.$1/"
virt-edit -d ubuntu-$1 /etc/hostname -e "s/ubuntu1/ubuntu-$1/"
virsh start ubuntu-$1
vm.py
import os,sys,time
args = sys.argv
ip1 = args[1]
ip = int(ip1)
num1 = args[2]
num = int(num1)
while num > 0:
com = "/home/yamato/image/dep.sh " + str(ip)
os.system(com)
ip = ip + 1
num = num - 1
time.sleep(5)
print("VM作成完了")
删除
delvm.sh
#!/bin/bash
COU=1
IP=$1
VMNUM=` expr $2 + 1`
while [ "$COU" -lt "$VMNUM" ]
do
virsh destroy ubuntu-$IP
virsh autostart --disable ubuntu-$IP
virsh undefine ubuntu-$IP
virsh vol-delete --pool default ubuntu-$IP.qcow2
virsh destroy ubuntu-k8s-master-$IP
virsh autostart --disable ubuntu-k8s-master-$IP
virsh undefine ubuntu-k8s-master-$IP
virsh vol-delete --pool default ubuntu-k8s-master-$IP.qcow2
virsh destroy ubuntu-k8s-worker-$IP
virsh autostart --disable ubuntu-k8s-worker-$IP
virsh undefine ubuntu-k8s-worker-$IP
virsh vol-delete --pool default ubuntu-k8s-worker-$IP.qcow2
rm /etc/libvirt/qemu/ubuntu-$IP.qcow2
rm /etc/libvirt/qemu/ubuntu-k8s-worker-$IP.qcow2
rm /etc/libvirt/qemu/ubuntu-k8s-master-$IP.qcow2
let IP++
let COU++
sleep 1
done
echo "VM削除完了"