diff --git a/roles/proxmox_lxc/defaults/main.yml b/roles/proxmox_lxc/defaults/main.yml index 75019da..183586a 100644 --- a/roles/proxmox_lxc/defaults/main.yml +++ b/roles/proxmox_lxc/defaults/main.yml @@ -1,3 +1,3 @@ --- -lxc_template_id: "128" +lxc_template_name: "ubuntu24lxc" lxc_template_hostname: "ubuntu24lxc" diff --git a/roles/proxmox_lxc/tasks/main.yml b/roles/proxmox_lxc/tasks/main.yml index a0716f8..9bd494d 100644 --- a/roles/proxmox_lxc/tasks/main.yml +++ b/roles/proxmox_lxc/tasks/main.yml @@ -16,6 +16,23 @@ ansible.builtin.debug: msg: "Target node {{ target_node }} will use storage: {{ target_storage }}" +- name: Get list of LXC containers on target node + ansible.builtin.uri: + url: "https://{{ proxmox_api_host }}:8006/api2/json/nodes/{{ target_node }}/lxc" + method: GET + headers: + Authorization: "PVEAPIToken={{ proxmox_api_user }}!{{ proxmox_api_token_id }}={{ proxmox_api_token_secret }}" + validate_certs: false + register: lxc_list + +- name: Find template VMID by name + ansible.builtin.set_fact: + lxc_template_id: "{{ (lxc_list.json.data | selectattr('name', 'equalto', lxc_template_name) | first).vmid }}" + +- name: Display found template + ansible.builtin.debug: + msg: "Found template '{{ lxc_template_name }}' with VMID {{ lxc_template_id }} on {{ target_node }}" + - name: Clone LXC from template on target node community.proxmox.proxmox: api_host: "{{ proxmox_api_host }}" diff --git a/roles/proxmox_vm/defaults/main.yml b/roles/proxmox_vm/defaults/main.yml index 8d1b38c..fe7c277 100644 --- a/roles/proxmox_vm/defaults/main.yml +++ b/roles/proxmox_vm/defaults/main.yml @@ -1,3 +1,3 @@ --- -vm_template_id: "118" +vm_template_name: "ubuntu24vm" vm_template_hostname: "ubuntu24vm" diff --git a/roles/proxmox_vm/tasks/main.yml b/roles/proxmox_vm/tasks/main.yml index 8d785ff..8cee57c 100644 --- a/roles/proxmox_vm/tasks/main.yml +++ b/roles/proxmox_vm/tasks/main.yml @@ -16,6 +16,23 @@ ansible.builtin.debug: msg: "Target node {{ target_node }} will use storage: {{ target_storage }}" +- name: Get list of VMs on target node + ansible.builtin.uri: + url: "https://{{ proxmox_api_host }}:8006/api2/json/nodes/{{ target_node }}/qemu" + method: GET + headers: + Authorization: "PVEAPIToken={{ proxmox_api_user }}!{{ proxmox_api_token_id }}={{ proxmox_api_token_secret }}" + validate_certs: false + register: vm_list + +- name: Find template VMID by name + ansible.builtin.set_fact: + vm_template_id: "{{ (vm_list.json.data | selectattr('name', 'equalto', vm_template_name) | first).vmid }}" + +- name: Display found template + ansible.builtin.debug: + msg: "Found template '{{ vm_template_name }}' with VMID {{ vm_template_id }} on {{ target_node }}" + - name: Clone VM from template on target node community.proxmox.proxmox_kvm: api_host: "{{ proxmox_api_host }}"