47 lines
1.9 KiB
YAML
47 lines
1.9 KiB
YAML
---
|
|
- name: Validate Proxmox API environment
|
|
ansible.builtin.assert:
|
|
that:
|
|
- lookup('env', 'PROXMOX_HOST') | length > 0
|
|
- lookup('env', 'PROXMOX_USER') | length > 0
|
|
- lookup('env', 'PROXMOX_TOKEN_ID') | length > 0
|
|
- lookup('env', 'PROXMOX_TOKEN_SECRET') | length > 0
|
|
fail_msg: Load ansible/.env with PROXMOX_HOST, PROXMOX_USER, PROXMOX_TOKEN_ID and PROXMOX_TOKEN_SECRET.
|
|
|
|
- name: Create or update LXC container
|
|
community.proxmox.proxmox:
|
|
api_host: "{{ lookup('env', 'PROXMOX_HOST') }}"
|
|
api_user: "{{ lookup('env', 'PROXMOX_USER') }}"
|
|
api_token_id: "{{ lookup('env', 'PROXMOX_TOKEN_ID') }}"
|
|
api_token_secret: "{{ lookup('env', 'PROXMOX_TOKEN_SECRET') }}"
|
|
validate_certs: "{{ lookup('env', 'PROXMOX_VALIDATE_CERTS') | default('false', true) | bool }}"
|
|
vmid: "{{ pve_lxc_vmid }}"
|
|
node: "{{ pve_lxc_node }}"
|
|
hostname: "{{ pve_lxc_hostname }}"
|
|
ostemplate: "{{ pve_lxc_ostemplate }}"
|
|
disk: "{{ pve_lxc_disk }}"
|
|
cores: "{{ pve_lxc_cores }}"
|
|
memory: "{{ pve_lxc_memory }}"
|
|
swap: "{{ pve_lxc_swap }}"
|
|
nameserver: "{{ pve_lxc_nameserver }}"
|
|
cmode: "{{ pve_lxc_cmode }}"
|
|
netif:
|
|
net0: "name=eth0,gw={{ pve_lxc_gateway }},ip={{ pve_lxc_ip }},bridge={{ pve_lxc_bridge }},firewall=1"
|
|
pubkey: "{{ lookup('file', pve_lxc_pubkey_file) }}"
|
|
features: "{{ pve_lxc_features }}"
|
|
unprivileged: "{{ pve_lxc_unprivileged }}"
|
|
onboot: "{{ pve_lxc_onboot }}"
|
|
startup: "{{ pve_lxc_startup }}"
|
|
update: true
|
|
state: present
|
|
|
|
- name: Start LXC container
|
|
community.proxmox.proxmox:
|
|
api_host: "{{ lookup('env', 'PROXMOX_HOST') }}"
|
|
api_user: "{{ lookup('env', 'PROXMOX_USER') }}"
|
|
api_token_id: "{{ lookup('env', 'PROXMOX_TOKEN_ID') }}"
|
|
api_token_secret: "{{ lookup('env', 'PROXMOX_TOKEN_SECRET') }}"
|
|
validate_certs: "{{ lookup('env', 'PROXMOX_VALIDATE_CERTS') | default('false', true) | bool }}"
|
|
vmid: "{{ pve_lxc_vmid }}"
|
|
state: started
|