From 9d872159adb2618e4175a0310f6eff4f069cfaa6 Mon Sep 17 00:00:00 2001 From: jerick Date: Mon, 2 Feb 2026 20:08:43 -0500 Subject: [PATCH] updated back to api --- roles/proxmox_lxc/tasks/main.yml | 37 ++++++++++++++++++++++--------- roles/proxmox_vm/tasks/main.yml | 38 +++++++++++++++++++++++--------- 2 files changed, 53 insertions(+), 22 deletions(-) diff --git a/roles/proxmox_lxc/tasks/main.yml b/roles/proxmox_lxc/tasks/main.yml index ecf7036..9a61bd0 100644 --- a/roles/proxmox_lxc/tasks/main.yml +++ b/roles/proxmox_lxc/tasks/main.yml @@ -13,17 +13,32 @@ timeout: 600 register: cloned_lxc -- name: Migrate LXC to target node - community.proxmox.proxmox: - api_host: "{{ proxmox_api_host }}" - api_user: "{{ proxmox_api_user }}" - api_token_id: "{{ proxmox_api_token_id }}" - api_token_secret: "{{ proxmox_api_token_secret }}" - node: "{{ lxc_template_node }}" - vmid: "{{ cloned_lxc.vmid }}" - target: "{{ target_node }}" - state: present - timeout: 600 +- name: Migrate LXC to target node via API + ansible.builtin.uri: + url: "https://{{ proxmox_api_host }}:8006/api2/json/nodes/{{ lxc_template_node }}/lxc/{{ cloned_lxc.vmid }}/migrate" + method: POST + headers: + Authorization: "PVEAPIToken={{ proxmox_api_user }}!{{ proxmox_api_token_id }}={{ proxmox_api_token_secret }}" + body_format: form-urlencoded + body: + target: "{{ target_node }}" + restart: "0" + validate_certs: false + status_code: [200] + register: migrate_task + when: lxc_template_node != target_node + +- name: Wait for migration task to complete + ansible.builtin.uri: + url: "https://{{ proxmox_api_host }}:8006/api2/json/nodes/{{ target_node }}/lxc/{{ cloned_lxc.vmid }}/status/current" + method: GET + headers: + Authorization: "PVEAPIToken={{ proxmox_api_user }}!{{ proxmox_api_token_id }}={{ proxmox_api_token_secret }}" + validate_certs: false + register: lxc_check + until: lxc_check.status == 200 + retries: 60 + delay: 10 when: lxc_template_node != target_node - name: Configure LXC resources diff --git a/roles/proxmox_vm/tasks/main.yml b/roles/proxmox_vm/tasks/main.yml index cf92289..b200cc0 100644 --- a/roles/proxmox_vm/tasks/main.yml +++ b/roles/proxmox_vm/tasks/main.yml @@ -14,17 +14,33 @@ timeout: 600 register: cloned_vm -- name: Migrate VM to target node - community.proxmox.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 }}" - node: "{{ vm_template_node }}" - vmid: "{{ cloned_vm.vmid }}" - migrate: true - target: "{{ target_node }}" - timeout: 600 +- name: Migrate VM to target node via API + ansible.builtin.uri: + url: "https://{{ proxmox_api_host }}:8006/api2/json/nodes/{{ vm_template_node }}/qemu/{{ cloned_vm.vmid }}/migrate" + method: POST + headers: + Authorization: "PVEAPIToken={{ proxmox_api_user }}!{{ proxmox_api_token_id }}={{ proxmox_api_token_secret }}" + body_format: form-urlencoded + body: + target: "{{ target_node }}" + online: "0" + with-local-disks: "1" + validate_certs: false + status_code: [200] + register: migrate_task + when: vm_template_node != target_node + +- name: Wait for migration task to complete + ansible.builtin.uri: + url: "https://{{ proxmox_api_host }}:8006/api2/json/nodes/{{ target_node }}/qemu/{{ cloned_vm.vmid }}/status/current" + method: GET + headers: + Authorization: "PVEAPIToken={{ proxmox_api_user }}!{{ proxmox_api_token_id }}={{ proxmox_api_token_secret }}" + validate_certs: false + register: vm_check + until: vm_check.status == 200 + retries: 60 + delay: 10 when: vm_template_node != target_node - name: Configure VM resources