---
- name: "Base Container"
hosts: localhost
gather_facts: no
vars:
PROXMOX_NODE: "{{ lookup('env', 'PROXMOX_NODE' ) }}"
PROXMOX_STORAGE: "{{ lookup('env', 'PROXMOX_STORAGE' ) }}"
PROXMOX_TEMPLATE: "{{ lookup('env', 'PROXMOX_TEMPLATE') }}"
PROXMOX_DIR: "{{ lookup('env', 'PROXMOX_DIR') | default('/tmp/config', true) }}"
DIR_SHARE: "{{ lookup('env', 'PROXMOX_SHARE') | default('/share', true) }}"
DIR_CERTS: "{{ lookup('env', 'PROXMOX_SHARE') | default('/share', true) }}/.certs"
DIR_KEYS: "{{ lookup('env', 'PROXMOX_SHARE') | default('/share', true) }}/.keys"
tasks:
- name: Ensure directories
file:
path: "{{ item }}"
state: directory
loop:
- "{{ DIR_SHARE }}"
- "{{ DIR_CERTS }}"
- "{{ DIR_KEYS }}"
- name: Generate container key on host
community.crypto.openssh_keypair:
path: "{{ DIR_KEYS }}/{{ id }}"
type: ed25519
force: false
- name: Container
ansible.builtin.include_role:
name: container
- name: Remote container configuration
hosts: container
gather_facts: yes
become: true
vars:
PROXMOX_DIR: "{{ lookup('env', 'PROXMOX_DIR') | default('/tmp/config', true) }}"
DIR_SHARE: "{{ lookup('env', 'PROXMOX_SHARE') | default('/share', true) }}"
DIR_CERTS: "{{ lookup('env', 'PROXMOX_SHARE') | default('/share', true) }}/.certs"
DIR_KEYS: "{{ lookup('env', 'PROXMOX_SHARE') | default('/share', true) }}/.keys"
tasks:
- name: Copy share if exists
ansible.builtin.copy:
src: /share/
dest: "{{ DIR_SHARE }}"
remote_src: no
when: share | default(false) | bool
- name: Apply base configuration
ansible.builtin.include_role:
name: base
tags: base
- name: Configure mounts
ansible.builtin.include_role:
name: mount
vars:
host: "{{ lookup('env', 'HOST') }}"
login: "{{ lookup('env', 'LOGIN') }}"
password: "{{ lookup('env', 'PASSWORD') }}"
mount: "{{ mount }}"
when:
- lookup('env','PROXMOX_PASSWORD') | default('', True) | length > 0
- not (share | default(false) | bool)
- mount is defined
tags: mounts