diff --git a/metal/roles/lxd/tasks/main.yml b/metal/roles/lxd/tasks/main.yml index de49fd3e..2b0ae144 100644 --- a/metal/roles/lxd/tasks/main.yml +++ b/metal/roles/lxd/tasks/main.yml @@ -8,6 +8,13 @@ stdin: "{{ lookup('template', 'leader.yaml.j2') }}" when: inventory_hostname == groups['metal'][0] +- name: Get LXD server certificate + slurp: + # TODO change to /var/lib/lxd/server.crt after https://wiki.debian.org/LXD + src: /var/snap/lxd/common/lxd/server.crt + register: server_cert + when: inventory_hostname == groups['metal'][0] + - name: Init LXD on member nodes command: cmd: /snap/bin/lxd init --preseed diff --git a/metal/roles/lxd/templates/leader.yaml.j2 b/metal/roles/lxd/templates/leader.yaml.j2 index d96631b3..94950778 100644 --- a/metal/roles/lxd/templates/leader.yaml.j2 +++ b/metal/roles/lxd/templates/leader.yaml.j2 @@ -1,5 +1,5 @@ config: - core.https_address: {{ ansible_default_ipv4.address }}:8443 + core.https_address: {{ hostvars[inventory_hostname]['ansible_host'] }}:8443 core.trust_password: "1" networks: - config: @@ -30,7 +30,7 @@ profiles: type: disk name: default cluster: - server_name: metal0 + server_name: {{ inventory_hostname }} enabled: true member_config: [] cluster_address: "" diff --git a/metal/roles/lxd/templates/member.yaml.j2 b/metal/roles/lxd/templates/member.yaml.j2 index e69de29b..fa7eaa88 100644 --- a/metal/roles/lxd/templates/member.yaml.j2 +++ b/metal/roles/lxd/templates/member.yaml.j2 @@ -0,0 +1,8 @@ +cluster: + server_name: {{ inventory_hostname }} + enabled: true + cluster_address: {{ hostvars[groups['metal'][0]]['ansible_host'] }}:8443 + cluster_certificate: | + {{ hostvars[groups['metal'][0]]['server_cert']['content'] | b64decode | indent(width=4) }} + server_address: {{ hostvars[inventory_hostname]['ansible_host'] }}:8443 + cluster_password: "1"