attempt to use proxmox api instead
This commit is contained in:
@@ -12,20 +12,32 @@
|
||||
ansible.builtin.set_fact:
|
||||
next_vmid: "{{ nextid_response.json.data }}"
|
||||
|
||||
- name: Clone LXC from template
|
||||
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 }}"
|
||||
clone: "{{ lxc_template_id }}"
|
||||
hostname: "{{ vm_hostname }}"
|
||||
vmid: "{{ next_vmid }}"
|
||||
full: true
|
||||
storage: "local-lvm"
|
||||
timeout: 300
|
||||
register: cloned_lxc
|
||||
- name: Clone LXC from template via API
|
||||
ansible.builtin.uri:
|
||||
url: "https://{{ proxmox_api_host }}:8006/api2/json/nodes/{{ lxc_template_node }}/lxc/{{ lxc_template_id }}/clone"
|
||||
method: POST
|
||||
headers:
|
||||
Authorization: "PVEAPIToken={{ proxmox_api_user }}!{{ proxmox_api_token_id }}={{ proxmox_api_token_secret }}"
|
||||
body_format: form-urlencoded
|
||||
body:
|
||||
newid: "{{ next_vmid }}"
|
||||
hostname: "{{ vm_hostname }}"
|
||||
full: "1"
|
||||
storage: "local-lvm"
|
||||
validate_certs: false
|
||||
register: clone_result
|
||||
|
||||
- name: Wait for clone task to complete
|
||||
ansible.builtin.uri:
|
||||
url: "https://{{ proxmox_api_host }}:8006/api2/json/nodes/{{ lxc_template_node }}/lxc/{{ next_vmid }}/status/current"
|
||||
method: GET
|
||||
headers:
|
||||
Authorization: "PVEAPIToken={{ proxmox_api_user }}!{{ proxmox_api_token_id }}={{ proxmox_api_token_secret }}"
|
||||
validate_certs: false
|
||||
register: lxc_status
|
||||
until: lxc_status.status == 200
|
||||
retries: 60
|
||||
delay: 5
|
||||
|
||||
- name: Migrate LXC to target node
|
||||
ansible.builtin.uri:
|
||||
@@ -55,28 +67,25 @@
|
||||
when: lxc_template_node != target_node
|
||||
|
||||
- name: Configure LXC resources
|
||||
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: "{{ target_node }}"
|
||||
vmid: "{{ next_vmid }}"
|
||||
cores: "{{ cpu_cores }}"
|
||||
memory: "{{ ram_gb | int * 1024 }}"
|
||||
netif:
|
||||
ansible.builtin.uri:
|
||||
url: "https://{{ proxmox_api_host }}:8006/api2/json/nodes/{{ target_node }}/lxc/{{ next_vmid }}/config"
|
||||
method: PUT
|
||||
headers:
|
||||
Authorization: "PVEAPIToken={{ proxmox_api_user }}!{{ proxmox_api_token_id }}={{ proxmox_api_token_secret }}"
|
||||
body_format: form-urlencoded
|
||||
body:
|
||||
cores: "{{ cpu_cores }}"
|
||||
memory: "{{ ram_gb | int * 1024 }}"
|
||||
net0: "name=eth0,bridge=vmbr0,ip=dhcp"
|
||||
state: present
|
||||
validate_certs: false
|
||||
|
||||
- name: Start the LXC container
|
||||
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: "{{ target_node }}"
|
||||
vmid: "{{ next_vmid }}"
|
||||
state: started
|
||||
ansible.builtin.uri:
|
||||
url: "https://{{ proxmox_api_host }}:8006/api2/json/nodes/{{ target_node }}/lxc/{{ next_vmid }}/status/start"
|
||||
method: POST
|
||||
headers:
|
||||
Authorization: "PVEAPIToken={{ proxmox_api_user }}!{{ proxmox_api_token_id }}={{ proxmox_api_token_secret }}"
|
||||
validate_certs: false
|
||||
|
||||
- name: Set VMID fact for later use
|
||||
ansible.builtin.set_fact:
|
||||
|
||||
Reference in New Issue
Block a user