使用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削除完了"
广告
将在 10 秒后关闭
bannerAds