Merge branch 'ft-ansible-common' into 'develop'

Common Node ansible playbook files, inclusive with required system

See merge request signalytic/platform-v2/experiments/node-config/common!2
This commit is contained in:
2026-09-02 13:28:55 +00:00
23 changed files with 178 additions and 56 deletions
+1
View File
@@ -0,0 +1 @@
.zed/
-5
View File
@@ -1,5 +0,0 @@
[defaults]
inventory = localhost,
roles_path = ./roles
retry_files_enabled = False
interpreter_python = auto_silent
-4
View File
@@ -1,4 +0,0 @@
---
# Version of the common config repo, rendered into example.conf.
group_version: "common-1.0.0"
+3 -7
View File
@@ -1,11 +1,7 @@
--- ---
# Common playbook. Imported by the node-specific playbook in the local repo; # Common node configuration, run via ansible-pull.
# can also be run on its own for testing. - name: Common Node Configuration
- name: Common node configuration
hosts: all hosts: all
become: true become: true
vars_files:
- group_vars/all.yml
roles: roles:
- role: base_packages - role: common
- role: example_config
-6
View File
@@ -1,6 +0,0 @@
---
apt_packages:
- xz-utils
- tree
- nano
-8
View File
@@ -1,8 +0,0 @@
---
- name: Install baseline packages
ansible.builtin.apt:
name: "{{ apt_packages }}"
state: present
update_cache: true
cache_valid_time: 3600
+10
View File
@@ -0,0 +1,10 @@
---
### 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"
Binary file not shown.
Binary file not shown.
+3
View File
@@ -0,0 +1,3 @@
#! /bin/bash
curl -sfL https://get.k3s.io | sh -
+14
View File
@@ -0,0 +1,14 @@
---
- 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 }}"
@@ -0,0 +1,30 @@
---
- 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
@@ -0,0 +1,30 @@
---
- 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
@@ -0,0 +1,30 @@
---
- 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
@@ -0,0 +1,14 @@
---
## 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
+18
View File
@@ -0,0 +1,18 @@
---
- 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
+25
View File
@@ -0,0 +1,25 @@
---
- 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
-7
View File
@@ -1,7 +0,0 @@
---
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"
-17
View File
@@ -1,17 +0,0 @@
---
- 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"
@@ -1,2 +0,0 @@
group_version = {{ group_version }}
host_version = {{ host_version }}