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 }}