diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 249f72b..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.zed/ 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 index 2bf4a79..1d731a5 100644 --- a/main.yml +++ b/main.yml @@ -1,7 +1,11 @@ --- -# Common node configuration, run via ansible-pull. -- name: Common Node Configuration +# 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: common + - 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/common/defaults/main.yml b/roles/common/defaults/main.yml deleted file mode 100644 index d6d791c..0000000 --- a/roles/common/defaults/main.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -### Signalytic Directories ### - -default_user: "root" -signalytic_root_ansible_dir: "/var/signalytic/ansible" -signalytic_common_dir: "{{ signalytic_root_ansible_dir }}/common" -signalytic_clientapps_dir: "/var/signalytic/clientapps" - -### Node config directories ### -node_config: "{{ signalytic_root_ansible_dir }}/config" diff --git a/roles/common/files/cellmodem-scripts-v15.tar.bz2 b/roles/common/files/cellmodem-scripts-v15.tar.bz2 deleted file mode 100644 index f32fd31..0000000 Binary files a/roles/common/files/cellmodem-scripts-v15.tar.bz2 and /dev/null differ diff --git a/roles/common/files/power-management-v11.tar.bz2 b/roles/common/files/power-management-v11.tar.bz2 deleted file mode 100644 index 0e3afde..0000000 Binary files a/roles/common/files/power-management-v11.tar.bz2 and /dev/null differ diff --git a/roles/common/files/signalytic-ap-manager-5.v5.tar.bz2 b/roles/common/files/signalytic-ap-manager-5.v5.tar.bz2 deleted file mode 100644 index 4ebd06a..0000000 Binary files a/roles/common/files/signalytic-ap-manager-5.v5.tar.bz2 and /dev/null differ diff --git a/roles/common/files/signalytic-battery-manager_3.0_all.deb b/roles/common/files/signalytic-battery-manager_3.0_all.deb deleted file mode 100644 index 6d2ce45..0000000 Binary files a/roles/common/files/signalytic-battery-manager_3.0_all.deb and /dev/null differ diff --git a/roles/common/files/signalytic-network-manager-1.1.v1-1_all.deb b/roles/common/files/signalytic-network-manager-1.1.v1-1_all.deb deleted file mode 100644 index 55f2a8e..0000000 Binary files a/roles/common/files/signalytic-network-manager-1.1.v1-1_all.deb and /dev/null differ diff --git a/roles/common/scripts/install-k3s.sh b/roles/common/scripts/install-k3s.sh deleted file mode 100755 index d3c2542..0000000 --- a/roles/common/scripts/install-k3s.sh +++ /dev/null @@ -1,3 +0,0 @@ -#! /bin/bash - -curl -sfL https://get.k3s.io | sh - diff --git a/roles/common/tasks/create-dirs.yml b/roles/common/tasks/create-dirs.yml deleted file mode 100644 index a165877..0000000 --- a/roles/common/tasks/create-dirs.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -- name: Check signalytic directories exist - ansible.builtin.file: - path: "{{ item }}" - state: directory - owner: "{{ default_user }}" - group: "{{ default_user }}" - mode: "0755" - become: true - loop: - - "{{ signalytic_root_ansible_dir }}" - - "{{ signalytic_common_dir }}" - - "{{ signalytic_clientapps_dir }}" - - "{{ node_config }}" diff --git a/roles/common/tasks/install-cellmodem-package.yml b/roles/common/tasks/install-cellmodem-package.yml deleted file mode 100644 index 70f54e3..0000000 --- a/roles/common/tasks/install-cellmodem-package.yml +++ /dev/null @@ -1,30 +0,0 @@ ---- -- name: Extract cellmodem package - ansible.builtin.unarchive: - src: files/cellmodem-scripts-v15.tar.bz2 - dest: /tmp - remote_src: false - become: true - -- name: Find the top-level extracted directory - ansible.builtin.find: - paths: /tmp - file_type: directory - recurse: false - patterns: "cellmodem-scripts-*" - register: extracted_dir - become: true - -- name: Fail if the archive layout is unexpected - ansible.builtin.assert: - that: - - extracted_dir.matched == 1 - fail_msg: >- - Expected exactly one cellmodem-scripts-* directory in /tmp, - found {{ extracted_dir.matched }}. Check the archive structure. - -- name: Run the install script from the top-level directory - ansible.builtin.command: - cmd: ./install.sh - chdir: "{{ extracted_dir.files[0].path }}" - become: true diff --git a/roles/common/tasks/install-power-management.yml b/roles/common/tasks/install-power-management.yml deleted file mode 100644 index 032126b..0000000 --- a/roles/common/tasks/install-power-management.yml +++ /dev/null @@ -1,30 +0,0 @@ ---- -- name: Extract power-management package - ansible.builtin.unarchive: - src: files/power-management-v11.tar.bz2 - dest: /tmp - remote_src: false - become: true - -- name: Find the top-level extracted directory - ansible.builtin.find: - paths: /tmp - file_type: directory - recurse: false - patterns: "power-management-*" - register: extracted_dir - become: true - -- name: Fail if the archive layout is unexpected - ansible.builtin.assert: - that: - - extracted_dir.matched == 1 - fail_msg: >- - Expected exactly one power-management-* directory in /tmp, - found {{ extracted_dir.matched }}. Check the archive structure. - -- name: Run the install script from the top-level directory - ansible.builtin.command: - cmd: ./install.sh - chdir: "{{ extracted_dir.files[0].path }}" - become: true diff --git a/roles/common/tasks/install-signalytic-ap.yml b/roles/common/tasks/install-signalytic-ap.yml deleted file mode 100644 index 3470ddf..0000000 --- a/roles/common/tasks/install-signalytic-ap.yml +++ /dev/null @@ -1,30 +0,0 @@ ---- -- name: Extract signalytic-ap package - ansible.builtin.unarchive: - src: files/signalytic-ap-manager-5.v5.tar.bz2 - dest: /tmp - remote_src: false - become: true - -- name: Find the top-level extracted directory - ansible.builtin.find: - paths: /tmp - file_type: directory - recurse: false - patterns: "signalytic-ap-manager-*" - register: extracted_dir - become: true - -- name: Fail if the archive layout is unexpected - ansible.builtin.assert: - that: - - extracted_dir.matched == 1 - fail_msg: >- - Expected exactly one signalytic-ap-manager-* directory in /tmp, - found {{ extracted_dir.matched }}. Check the archive structure. - -- name: Run the install script from the top-level directory - ansible.builtin.command: - cmd: ./install.sh - chdir: "{{ extracted_dir.files[0].path }}" - become: true diff --git a/roles/common/tasks/install-signalytic-deb.yml b/roles/common/tasks/install-signalytic-deb.yml deleted file mode 100644 index d974b81..0000000 --- a/roles/common/tasks/install-signalytic-deb.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -## Network Manager -- name: Install signalytic-network manager - ansible.builtin.apt: - deb: "{{ role_path }}/files/signalytic-network-manager-1.1.v1-1_all.deb" - fail_on_autoremove: true - become: true - -## Battery Manager -- name: Install signalytic-battery manager - ansible.builtin.apt: - deb: "{{ role_path }}/files/signalytic-battery-manager_3.0_all.deb" - fail_on_autoremove: true - become: true diff --git a/roles/common/tasks/main.yml b/roles/common/tasks/main.yml deleted file mode 100644 index 0578b71..0000000 --- a/roles/common/tasks/main.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -- name: Create system directories - ansible.builtin.import_tasks: create-dirs.yml - -- name: Install system utilities - ansible.builtin.import_tasks: system-utils.yml - -- name: Install signalytic-debian packages - ansible.builtin.import_tasks: install-signalytic-deb.yml - -- name: Install cellmodem package - ansible.builtin.import_tasks: install-cellmodem-package.yml - -- name: Install power-management package - ansible.builtin.import_tasks: install-power-management.yml - -- name: Install signalytic-ap package - ansible.builtin.import_tasks: install-signalytic-ap.yml diff --git a/roles/common/tasks/system-utils.yml b/roles/common/tasks/system-utils.yml deleted file mode 100644 index d10d608..0000000 --- a/roles/common/tasks/system-utils.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -- name: Install system utils - ansible.builtin.apt: - name: - - xz-utils - - git - - modemmanager - state: present - update_cache: true - become: true - register: apt_result - until: apt_result is succeeded - retries: 7 - delay: 5 - -- name: Check if k3s is installed - ansible.builtin.stat: - path: /usr/local/bin/k3s - register: k3s_binary - -- name: Install k3s - ansible.builtin.script: - cmd: scripts/install-k3s.sh - become: true - when: not k3s_binary.stat.exists 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 }}