d5cf6f656e
Previously the community.proxmox.proxmox / proxmox_vm_info module_defaults were defined inline on the outer block in main.yml. Invoking individual task files via 'tasks_from: stop' (or delete/convert/etc.) bypassed main.yml, leaving the API parameters unset and producing 'missing required arguments: api_host, api_user' errors. The README worked around this by telling callers to repeat the module_defaults block at the play level — easy to forget, and duplicated config. Extract the defaults dict into _proxmox_module_defaults in defaults/main.yml (using a YAML anchor to share between the two modules), and wrap every task file that calls a Proxmox module in a block that references it. Callers only need the proxmox_* connection vars in scope (typically group_vars/all/) — both 'roles:' and 'tasks_from:' invocations now configure the API consistently. Files wrapped: check-exists, create, clone, update, start, stop, delete, convert. wait/post-clone/edit-config don't call Proxmox modules and are unchanged. main.yml's now-redundant outer module_defaults is removed. README updated to drop the 'Using Standalone Tasks' workaround boilerplate.
32 lines
1.2 KiB
YAML
Executable File
32 lines
1.2 KiB
YAML
Executable File
---
|
|
- name: Clone LXC container
|
|
module_defaults: "{{ _proxmox_module_defaults }}"
|
|
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
|