Files
khuedoan-homelab/metal/roles/lxd/tasks/main.yml
2021-05-01 22:51:55 +07:00

54 lines
1.5 KiB
YAML

# TODO (optimize) LXD node SELinux
- name: Disable SELinux
selinux:
state: disabled
# TODO (optimize) LXD node firewall
- name: Disable firewall
service:
name: firewalld
state: stopped
enabled: no
- name: Install LXD
snap:
name: lxd
- name: Init LXD on leader node
command:
cmd: /snap/bin/lxd init --preseed
stdin: "{{ lookup('template', 'leader.yaml.j2') }}"
creates: /var/snap/lxd/common/lxd/server.crt
when: inventory_hostname == groups['metal'][0]
- name: Get LXD server certificate
slurp:
# TODO (optimize) 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
stdin: "{{ lookup('template', 'member.yaml.j2') }}"
creates: /var/snap/lxd/common/lxd/server.crt
when: inventory_hostname != groups['metal'][0]
# TODO (optimize) Use template for tfvars
- name: Add LXD server to environment variables
lineinfile:
path: "{{ playbook_dir }}/../infra/terraform.tfvars"
line: "lxd_address = \"{{ hostvars[groups['metal'][0]]['ansible_host'] }}\""
create: yes
delegate_to: localhost
run_once: yes
- name: Add LXD password to environment variables
lineinfile:
path: "{{ playbook_dir }}/../infra/terraform.tfvars"
line: "lxd_password = \"{{ lxd_password }}\""
create: yes
delegate_to: localhost
run_once: yes