1e3ab88304
The previous commit (d5cf6f6) used 'module_defaults: "{{ _proxmox_module_defaults }}"'
to template the entire defaults dict. Ansible rejects this because
module_defaults keys must be static action/module/group names at parse
time — only values may be templated.
Expose _proxmox_api_args as a flat dict of API parameters in
defaults/main.yml, and in each task file's module_defaults block use
the literal community.proxmox.proxmox and community.proxmox.proxmox_vm_info
keys with templated values pointing at the var.
34 lines
1.3 KiB
YAML
Executable File
34 lines
1.3 KiB
YAML
Executable File
---
|
|
- name: Clone LXC container
|
|
module_defaults:
|
|
community.proxmox.proxmox: "{{ _proxmox_api_args }}"
|
|
community.proxmox.proxmox_vm_info: "{{ _proxmox_api_args }}"
|
|
block:
|
|
- name: Create a full clone of the container
|
|
community.proxmox.proxmox:
|
|
vmid: "{{ lxc_vmid | default(0) }}"
|
|
clone: "{{ lxc_clone_from }}"
|
|
clone_type: "{{ lxc_clone_type }}"
|
|
hostname: "{{ lxc_hostname }}"
|
|
storage: "{{ lxc_storage }}"
|
|
register: clone_result
|
|
|
|
- name: Add bind mounts via pct
|
|
become: yes
|
|
ansible.builtin.shell: |
|
|
pct set {{ clone_result.vmid | default(lxc_vmid) }} {% for key, value in lxc_mounts.items() %}-{{ key }} {{ value }} {% endfor %}
|
|
delegate_to: "{{ proxmox_delegate_host }}"
|
|
when: lxc_mounts is defined
|
|
|
|
- name: Resize rootfs after clone
|
|
ansible.builtin.command:
|
|
cmd: "pct resize {{ clone_result.vmid }} rootfs {{ lxc_size }}G"
|
|
delegate_to: "{{ proxmox_delegate_host }}"
|
|
become: yes
|
|
register: resize_result
|
|
changed_when: resize_result.rc == 0 and 'already at specified size' not in resize_result.stderr
|
|
failed_when:
|
|
- resize_result.rc != 0
|
|
- "'already at specified size' not in resize_result.stderr"
|
|
when: lxc_size is defined
|