move roles, files and templates dirs out of playbook dir into root dir

Because of how Ansible local relative search paths work, the global
"files" and "templates" directories need to be next to the playbooks.
However its not intuitive to look into the "playbooks" directory to find
the files and templates for a host.
Therefore move them out of the "playbooks" directory into the root
directory and add symlinks so everything still works.

Similarly for local roles, they also need to be next to the playbooks.
So for a nicer structure, move the "roles" directory out into the root
directory as well and add a symlink so everything still works.

Also see:
https://docs.ansible.com/ansible/latest/playbook_guide/playbook_pathing.html#resolving-local-relative-paths
https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_reuse_roles.html#storing-and-finding-roles
This commit is contained in:
June 2024-12-02 03:34:55 +01:00
commit f16f8697c2
Signed by: june
SSH key fingerprint: SHA256:o9EAq4Y9N9K0pBQeBTqhSDrND5E7oB+60ZNx0U1yPe0
147 changed files with 3 additions and 0 deletions

View file

@ -0,0 +1,6 @@
- name: Restart olad
become: true
ansible.builtin.systemd:
service: olad.service
state: restarted
daemon-reload: true

View file

@ -0,0 +1,22 @@
---
argument_specs:
main:
options:
ola__configs:
description: A list of ola configurations.
type: list
elements: dict
required: true
options:
name:
description: >-
The name of the configuration file, where the configuration should
be deployed to. The file will be placed under `/etc/ola/` and
`.conf` will be appended to the given name. So in the end the path
will be like this: `/etc/ola/\{\ name \}\}.conf`.
type: str
required: true
content:
description: The content of the configuration.
type: str
required: true

8
roles/ola/meta/main.yaml Normal file
View file

@ -0,0 +1,8 @@
---
dependencies:
- role: distribution_check
vars:
distribution_check__distribution_support_spec:
- name: Debian
major_versions:
- "11"

22
roles/ola/tasks/main.yaml Normal file
View file

@ -0,0 +1,22 @@
- name: Install ola
become: true
ansible.builtin.apt:
name: ola
- name: Ensure all given configuraton files are deployed
become: true
ansible.builtin.copy:
content: "{{ item.content }}"
dest: /etc/ola/{{ item.name }}.conf
mode: "644"
owner: olad
group: olad
loop: "{{ ola__configs }}"
notify: Restart olad
- name: Enable and start ola service
become: true
ansible.builtin.systemd:
name: olad.service
state: started
enabled: true

View file

@ -0,0 +1,2 @@
enabled = {{ ola__enable_ftdi | string | lower }}
frequency = 30