From 8c585fb3557ce7c78edb067c4b672558ff22a08d Mon Sep 17 00:00:00 2001 From: Alec Turner Date: Wed, 5 Aug 2026 08:43:25 -0700 Subject: [PATCH] initial implementation: common config repo --- ansible.cfg | 5 +++++ group_vars/all.yml | 4 ++++ main.yml | 11 +++++++++++ roles/base_packages/defaults/main.yml | 6 ++++++ roles/base_packages/tasks/main.yml | 8 ++++++++ roles/example_config/defaults/main.yml | 7 +++++++ roles/example_config/tasks/main.yml | 17 +++++++++++++++++ roles/example_config/templates/example.conf.j2 | 2 ++ 8 files changed, 60 insertions(+) create mode 100644 ansible.cfg create mode 100644 group_vars/all.yml create mode 100644 main.yml create mode 100644 roles/base_packages/defaults/main.yml create mode 100644 roles/base_packages/tasks/main.yml create mode 100644 roles/example_config/defaults/main.yml create mode 100644 roles/example_config/tasks/main.yml create mode 100644 roles/example_config/templates/example.conf.j2 diff --git a/ansible.cfg b/ansible.cfg new file mode 100644 index 0000000..a2f29df --- /dev/null +++ b/ansible.cfg @@ -0,0 +1,5 @@ +[defaults] +inventory = localhost, +roles_path = ./roles +retry_files_enabled = False +interpreter_python = auto_silent diff --git a/group_vars/all.yml b/group_vars/all.yml new file mode 100644 index 0000000..48d7611 --- /dev/null +++ b/group_vars/all.yml @@ -0,0 +1,4 @@ +--- + +# Version of the common config repo, rendered into example.conf. +group_version: "common-1.0.0" diff --git a/main.yml b/main.yml new file mode 100644 index 0000000..1d731a5 --- /dev/null +++ b/main.yml @@ -0,0 +1,11 @@ +--- +# Common playbook. Imported by the node-specific playbook in the local repo; +# can also be run on its own for testing. +- name: Common node configuration + hosts: all + become: true + vars_files: + - group_vars/all.yml + roles: + - role: base_packages + - role: example_config diff --git a/roles/base_packages/defaults/main.yml b/roles/base_packages/defaults/main.yml new file mode 100644 index 0000000..e328786 --- /dev/null +++ b/roles/base_packages/defaults/main.yml @@ -0,0 +1,6 @@ +--- + +apt_packages: + - xz-utils + - tree + - nano diff --git a/roles/base_packages/tasks/main.yml b/roles/base_packages/tasks/main.yml new file mode 100644 index 0000000..3412d0d --- /dev/null +++ b/roles/base_packages/tasks/main.yml @@ -0,0 +1,8 @@ +--- + +- name: Install baseline packages + ansible.builtin.apt: + name: "{{ apt_packages }}" + state: present + update_cache: true + cache_valid_time: 3600 diff --git a/roles/example_config/defaults/main.yml b/roles/example_config/defaults/main.yml new file mode 100644 index 0000000..22cb8f9 --- /dev/null +++ b/roles/example_config/defaults/main.yml @@ -0,0 +1,7 @@ +--- + +signalytic_config_dir: /etc/signalytic + +# Overridden by group_vars/all.yml (common repo) and host_vars.yml (local repo). +group_version: "unset" +host_version: "unset" diff --git a/roles/example_config/tasks/main.yml b/roles/example_config/tasks/main.yml new file mode 100644 index 0000000..8ef8522 --- /dev/null +++ b/roles/example_config/tasks/main.yml @@ -0,0 +1,17 @@ +--- + +- name: Create signalytic config directory + ansible.builtin.file: + path: "{{ signalytic_config_dir }}" + state: directory + owner: root + group: root + mode: "0755" + +- name: Render example.conf + ansible.builtin.template: + src: example.conf.j2 + dest: "{{ signalytic_config_dir }}/example.conf" + owner: root + group: root + mode: "0644" diff --git a/roles/example_config/templates/example.conf.j2 b/roles/example_config/templates/example.conf.j2 new file mode 100644 index 0000000..302e95b --- /dev/null +++ b/roles/example_config/templates/example.conf.j2 @@ -0,0 +1,2 @@ +group_version = {{ group_version }} +host_version = {{ host_version }}