Fix VM base images being overwritten

The base image is used as backing image for the VM images, so
overwriting it results in corrupt data after VM reboots.
This commit is contained in:
Basti 2022-06-11 11:17:42 +02:00
parent 9d61e28911
commit 52d7fe52e5
Signed by untrusted user: basti
GPG Key ID: 9F88009D31D99C72
3 changed files with 16 additions and 8 deletions

View File

@ -0,0 +1,7 @@
ubuntu_server_cloud_image_release = "20220530"
node.default["kosmos_kvm"]["host"]["qemu_base_image"] = {
"url" => "https://cloud-images.ubuntu.com/releases/focal/release-#{ubuntu_server_cloud_image_release}/ubuntu-20.04-server-cloudimg-amd64-disk-kvm.img",
"checksum" => "0295bee0539924774327d5267aa8e2eeac315b9efea7136c83643fce454529b8",
"path" => "/var/lib/libvirt/images/base/ubuntu-20.04-server-cloudimg-amd64-disk-kvm-#{ubuntu_server_cloud_image_release}.qcow2"
}

View File

@ -12,17 +12,19 @@ directory "/var/lib/libvirt/images/base" do
mode "0750"
end
# Base Ubuntu 20.04 image
remote_file "/var/lib/libvirt/images/base/ubuntu-20.04-server-cloudimg-amd64-disk-kvm.qcow2" do
source "http://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64-disk-kvm.img"
# Base VM image
remote_file node["kosmos_kvm"]["host"]["qemu_base_image"]["path"] do
source node["kosmos_kvm"]["host"]["qemu_base_image"]["url"]
checksum node["kosmos_kvm"]["host"]["qemu_base_image"]["checksum"]
owner "libvirt-qemu"
group "kvm"
mode "0640"
end
cookbook_file "/usr/local/sbin/create_vm" do
source "create_vm"
template "/usr/local/sbin/create_vm" do
source "create_vm.erb"
mode "0750"
variables base_image_path: node["kosmos_kvm"]["host"]["qemu_base_image"]["path"]
end
firewall_rule 'ssh-alt-port' do

View File

@ -16,10 +16,9 @@ DISKSIZE=${4:-10} # 10GB default
# Directory where image files will be stored
IMAGE_DIR=/var/lib/libvirt/images
IMAGE_FILE=${VMNAME}.qcow2
IMAGE_PATH=$IMAGE_DIR/$IMAGE_FILE
IMAGE_PATH=$IMAGE_DIR/${VMNAME}.qcow2
CIDATA_PATH=${IMAGE_DIR}/cidata-${VMNAME}.iso
BASE_FILE=${IMAGE_DIR}/base/ubuntu-20.04-server-cloudimg-amd64-disk-kvm.qcow2
BASE_FILE=<%= @base_image_path %>
# Create the VM image if it does not already exist
if [ ! -f "$IMAGE_PATH" ]; then