Bag of hacks to get local libvirt working
This commit is contained in:
@ -6,6 +6,7 @@
|
||||
|
||||
vmname="$1"
|
||||
template_file="/tank/img/$2"
|
||||
qemu_tank_dir="/home/f/Projects/Cyberia/tank"
|
||||
vcpus="$3"
|
||||
memory="$4"
|
||||
pubkeys="$5"
|
||||
@ -50,40 +51,40 @@ if echo "$public_ipv4" | grep -vqE "^[0-9.]+$"; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
disk="/tank/vm/$vmname.qcow2"
|
||||
cdrom="/tank/vm/$vmname.iso"
|
||||
xml="/tank/vm/$vmname.xml"
|
||||
disk="$vmname.qcow2"
|
||||
cdrom="$vmname.iso"
|
||||
xml="$vmname.xml"
|
||||
|
||||
if [ -f /tank/vm/$vmname.qcow2 ]; then
|
||||
echo "Randomly generated name matched an existing VM! Odds are like one in a billion. Buy a lotto ticket."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp "$template_file" "$disk"
|
||||
cp "$template_file" "/tank/vm/$disk"
|
||||
cp /tank/config/cyberia-cloudinit.yml /tmp/cloudinit.yml
|
||||
echo "$pubkeys" | while IFS= read -r line; do
|
||||
echo " - $line" >> /tmp/cloudinit.yml
|
||||
done
|
||||
|
||||
cloud-localds "$cdrom" /tmp/cloudinit.yml
|
||||
cloud-localds "/tank/vm/$cdrom" /tmp/cloudinit.yml
|
||||
|
||||
qemu-img resize "$disk" "$root_volume_size"
|
||||
qemu-img resize "/tank/vm/$disk" "$root_volume_size"
|
||||
virt-install \
|
||||
--memory "$memory" \
|
||||
--vcpus "$vcpus" \
|
||||
--name "$vmname" \
|
||||
--disk "$disk",bus=virtio \
|
||||
--disk "$cdrom",device=cdrom \
|
||||
--disk "$qemu_tank_dir/vm/$disk",bus=virtio \
|
||||
--disk "$qemu_tank_dir/vm/$cdrom",device=cdrom \
|
||||
--os-type Linux \
|
||||
--os-variant generic \
|
||||
--virt-type kvm \
|
||||
--graphics vnc,listen=127.0.0.1 \
|
||||
--network network=$network_name,filterref=clean-traffic,model=virtio \
|
||||
--import \
|
||||
--print-xml > "$xml"
|
||||
--print-xml > "/tank/vm/$xml"
|
||||
|
||||
chmod 0600 "$xml" "$disk" "$cdrom"
|
||||
virsh define "$xml"
|
||||
chmod 0600 "/tank/vm/$xml" "/tank/vm/$disk" "/tank/vm/$cdrom"
|
||||
virsh define "/tank/vm/$xml"
|
||||
virsh start "$vmname"
|
||||
|
||||
echo "success"
|
||||
|
Reference in New Issue
Block a user