--- - name: Check if container exists community.general.proxmox: <<: "{{ proxmox_api_connection }}" vmid: "{{ lxc_vmid }}" state: current register: existing_container ignore_errors: true - name: Skip if container already exists meta: end_host when: existing_container is succeeded - name: Container source must be defined (lxc_clone_from or lxc_template) ansible.builtin.fail: msg: "Neither lxc_clone_from or lxc_template are defined" when: lxc_clone_from is undefined and lxc_template is undefined - name: Clone container from another container or template, then update when: lxc_clone_from is defined block: - name: Clone from template ansible.builtin.include_tasks: clone.yaml register: clone_result - name: Update container ansible.builtin.include_tasks: update.yaml vars: lxc_vmid: "{{ clone_result.vmid }}" register: lxc_result - name: Create the new container ansible.builtin.include_tasks: create.yaml when: lxc_template is defined and lxc_clone_from is undefined - name: Start the created container and wait for ssh vars: lxc_vmid: "{{ lxc_result.vmid }}" ansible.builtin.include_tasks: "{{ item }}" loop: - start.yaml - wait.yaml when: lxc_start - name: Post clone updates when: lxc_clone_from is defined delegate_to: "{{ lxc_hostname }}" block: - name: Include post-clone tasks ansible.builtin.include_tasks: post-clone.yaml