queries target node instead of template node
This commit is contained in:
@@ -1,20 +1,20 @@
|
|||||||
---
|
---
|
||||||
- name: Get available storage on template node
|
- name: Get available storage on target node
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "https://{{ proxmox_api_host }}:8006/api2/json/nodes/{{ lxc_template_node }}/storage"
|
url: "https://{{ proxmox_api_host }}:8006/api2/json/nodes/{{ target_node }}/storage"
|
||||||
method: GET
|
method: GET
|
||||||
headers:
|
headers:
|
||||||
Authorization: "PVEAPIToken={{ proxmox_api_user }}!{{ proxmox_api_token_id }}={{ proxmox_api_token_secret }}"
|
Authorization: "PVEAPIToken={{ proxmox_api_user }}!{{ proxmox_api_token_id }}={{ proxmox_api_token_secret }}"
|
||||||
validate_certs: false
|
validate_certs: false
|
||||||
register: storage_info
|
register: storage_info
|
||||||
|
|
||||||
- name: Set storage backend (prefer local-zfs if available)
|
- name: Set target storage backend (prefer local-zfs if available)
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
clone_storage: "{{ 'local-zfs' if storage_info.json.data | selectattr('storage', 'equalto', 'local-zfs') | list | length > 0 else 'local-lvm' }}"
|
target_storage: "{{ 'local-zfs' if storage_info.json.data | selectattr('storage', 'equalto', 'local-zfs') | list | length > 0 else 'local-lvm' }}"
|
||||||
|
|
||||||
- name: Display selected storage
|
- name: Display selected storage
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
msg: "Using storage backend: {{ clone_storage }}"
|
msg: "Target node {{ target_node }} will use storage: {{ target_storage }}"
|
||||||
|
|
||||||
- name: Clone LXC from template (on template's node)
|
- name: Clone LXC from template (on template's node)
|
||||||
community.proxmox.proxmox:
|
community.proxmox.proxmox:
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
clone: "{{ lxc_template_id }}"
|
clone: "{{ lxc_template_id }}"
|
||||||
hostname: "{{ vm_hostname }}"
|
hostname: "{{ vm_hostname }}"
|
||||||
full: true
|
full: true
|
||||||
storage: "{{ clone_storage }}"
|
storage: "local-lvm"
|
||||||
timeout: 600
|
timeout: 600
|
||||||
register: cloned_lxc
|
register: cloned_lxc
|
||||||
|
|
||||||
@@ -40,6 +40,7 @@
|
|||||||
body:
|
body:
|
||||||
target: "{{ target_node }}"
|
target: "{{ target_node }}"
|
||||||
restart: "0"
|
restart: "0"
|
||||||
|
target-storage: "{{ target_storage }}"
|
||||||
validate_certs: false
|
validate_certs: false
|
||||||
status_code: [200]
|
status_code: [200]
|
||||||
register: migrate_task
|
register: migrate_task
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
---
|
---
|
||||||
- name: Get available storage on template node
|
- name: Get available storage on target node
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "https://{{ proxmox_api_host }}:8006/api2/json/nodes/{{ vm_template_node }}/storage"
|
url: "https://{{ proxmox_api_host }}:8006/api2/json/nodes/{{ target_node }}/storage"
|
||||||
method: GET
|
method: GET
|
||||||
headers:
|
headers:
|
||||||
Authorization: "PVEAPIToken={{ proxmox_api_user }}!{{ proxmox_api_token_id }}={{ proxmox_api_token_secret }}"
|
Authorization: "PVEAPIToken={{ proxmox_api_user }}!{{ proxmox_api_token_id }}={{ proxmox_api_token_secret }}"
|
||||||
validate_certs: false
|
validate_certs: false
|
||||||
register: storage_info
|
register: storage_info
|
||||||
|
|
||||||
- name: Set storage backend (prefer local-zfs if available)
|
- name: Set target storage backend (prefer local-zfs if available)
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
clone_storage: "{{ 'local-zfs' if storage_info.json.data | selectattr('storage', 'equalto', 'local-zfs') | list | length > 0 else 'local-lvm' }}"
|
target_storage: "{{ 'local-zfs' if storage_info.json.data | selectattr('storage', 'equalto', 'local-zfs') | list | length > 0 else 'local-lvm' }}"
|
||||||
|
|
||||||
- name: Display selected storage
|
- name: Display selected storage
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
msg: "Using storage backend: {{ clone_storage }}"
|
msg: "Target node {{ target_node }} will use storage: {{ target_storage }}"
|
||||||
|
|
||||||
- name: Clone VM from template (on template's node)
|
- name: Clone VM from template (on template's node)
|
||||||
community.proxmox.proxmox_kvm:
|
community.proxmox.proxmox_kvm:
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
clone: "template"
|
clone: "template"
|
||||||
name: "{{ vm_hostname }}"
|
name: "{{ vm_hostname }}"
|
||||||
full: true
|
full: true
|
||||||
storage: "{{ clone_storage }}"
|
storage: "local-lvm"
|
||||||
timeout: 600
|
timeout: 600
|
||||||
register: cloned_vm
|
register: cloned_vm
|
||||||
|
|
||||||
@@ -42,6 +42,7 @@
|
|||||||
target: "{{ target_node }}"
|
target: "{{ target_node }}"
|
||||||
online: "0"
|
online: "0"
|
||||||
with-local-disks: "1"
|
with-local-disks: "1"
|
||||||
|
targetstorage: "{{ target_storage }}"
|
||||||
validate_certs: false
|
validate_certs: false
|
||||||
status_code: [200]
|
status_code: [200]
|
||||||
register: migrate_task
|
register: migrate_task
|
||||||
|
|||||||
Reference in New Issue
Block a user