--- - name: Check vm cloud-init ansible.builtin.stat: path: "/var/lib/libvirt/images/debian-13.qcow2" become: true register: is_cloud_init_file - name: Deploy vm cloud-init ansible.builtin.copy: src: "{{ hostvars['console']['node']['data_path'] }}/images/debian-13-generic-amd64.qcow2" dest: "/var/lib/libvirt/images/debian-13.qcow2" owner: "{{ ansible_user }}" group: "svadmins" mode: "0644" force: false become: true when: not is_cloud_init_file.stat.exists - name: Remote copy vm cloud-init file ansible.builtin.copy: src: "/var/lib/libvirt/images/debian-13.qcow2" dest: "/var/lib/libvirt/images/{{ target_vm }}.qcow2" owner: "{{ ansible_user }}" group: "svadmins" mode: "0644" remote_src: true force: false become: true - name: Check deployed cloud-init file info ansible.builtin.command: cmd: "qemu-img info /var/lib/libvirt/images/{{ target_vm }}.qcow2 --output json" changed_when: false failed_when: - deployed_cloudfile_info.rc != 0 - ("lock") not in deployed_cloudfile_info.stderr register: "deployed_cloudfile_info" - name: Resize deployed cloud-init file ansible.builtin.command: cmd: "qemu-img resize /var/lib/libvirt/images/{{ target_vm }}.qcow2 {{ hostvars[target_vm]['vm']['storage'] }}G" when: - deployed_cloudfile_info.rc == 0 - (deployed_cloudfile_info.stdout | from_json)['virtual-size'] < (hostvars[target_vm]['vm']['storage'] | int * 1024 * 1024 * 1024) changed_when: true - name: Deploy vm seed.iso ansible.builtin.copy: src: "{{ hostvars['console']['node']['data_path'] }}/images/seeds/{{ target_vm }}/seed.iso" dest: "/var/lib/libvirt/seeds/{{ target_vm }}_seed.iso" owner: "{{ ansible_user }}" group: "svadmins" mode: "0644" become: true when: deployed_cloudfile_info.rc == 0