--- # tasks file for proxmox - name: Create instance community.general.proxmox_kvm: api_host: "{{ proxmox_api_host }}" api_user: "{{ proxmox_api_user }}" api_token_id: "{{ proxmox_api_token_id }}" api_token_secret: "{{ proxmox_api_token_secret }}" agent: "enabled=1,fstrim_cloned_disks=1" autostart: "{{ proxmox_instance_autostart }}" cores: "{{ proxmox_instance_cores }}" cpu: "{{ proxmox_instance_cpu }}" hotplug: "{{ proxmox_instance_hotplug | join(',') }}" ipconfig: "{{ proxmox_instance_ipconfig }}" memory: "{{ proxmox_instance_memory }}" name: "{{ inventory_hostname }}" nameservers: "{{ proxmox_instance_cloudinit_nameservers }}" net: "{{ proxmox_instance_net }}" node: "{{ proxmox_instance_node }}" numa_enabled: "{{ proxmox_instance_numa }}" onboot: "{{ proxmox_instance_onboot }}" scsihw: virtio-scsi-single tablet: false vmid: "{{ proxmox_instance_vmid }}" delegate_to: "{{ proxmox_delegate_to | default(omit) }}" register: create_instance notify: - Configure cloud-init - Start instance - Wait SSH port is open - Wait cloud-init - name: Import virtual disk ansible.builtin.command: cmd: >- qm set {{ proxmox_instance_vmid }} --{{ proxmox_instance_disks[0].disk }} {{ proxmox_instance_disks[0].storage }}:0,import-from={{ proxmox_instance_disks[0].img }} chdir: "{{ proxmox_instance_disks[0].img | ansible.builtin.dirname }}" when: create_instance.changed # noqa: no-handler no-changed-when become: true delegate_to: "{{ proxmox_delegate_to | default(omit) }}" - name: Workaround to add args to the VM ansible.builtin.lineinfile: path: /etc/pve/qemu-server/{{ proxmox_instance_vmid }}.conf line: "args: {{ proxmox_instance_args }}" state: present when: proxmox_instance_args | length > 0 become: true delegate_to: "{{ proxmox_delegate_to | default(omit) }}" - name: Add configuration items community.general.proxmox_kvm: api_host: "{{ proxmox_api_host }}" api_user: "{{ proxmox_api_user }}" api_token_id: "{{ proxmox_api_token_id }}" api_token_secret: "{{ proxmox_api_token_secret }}" boot: order=virtio0 name: "{{ inventory_hostname }}" node: "{{ proxmox_instance_node }}" serial: serial0: socket update: true update_unsafe: true vmid: "{{ proxmox_instance_vmid }}" delegate_to: "{{ proxmox_delegate_to | default(omit) }}" notify: - Start instance - Wait SSH port is open