Add hawser role and playbook for stack upgrades

This commit is contained in:
DerLinkman
2026-07-18 00:08:03 +02:00
parent 5c8af619d3
commit fb779abd06
6 changed files with 85 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
- hosts: all
user: admin
become: true
tasks:
- name: Verify if system is Debian
debug:
msg: "This playbook is running on a Debian system."
when: ansible_facts['os_family'] == "Debian"
- name: Stop playbook if system is not Debian
fail:
msg: "This playbook only supports Debian."
when: ansible_facts['os_family'] != "Debian"
- name: Include hawser role
import_role:
name: hawser
when: ansible_facts['os_family'] == "Debian"
+15
View File
@@ -0,0 +1,15 @@
# Name des Docker Compose Projekts
hawser_project_name: hawser
# Verzeichnis, in dem die Compose-Datei auf den Zielsystemen liegt
hawser_compose_dir: /opt/hawser
# Freigegebener Port des Hawser-Agents
hawser_port: "2376"
# Name des externen Docker Volumes für die Stack-Dateien
hawser_stacks_volume: hawser_stacks
# ALLOW_INSECURE_NO_AUTH=true erlaubt Standard-Mode ohne Token auf nicht-loopback Adressen.
# Nur setzen, wenn das Netzwerk durch andere Maßnahmen abgesichert ist.
hawser_allow_insecure_no_auth: true
+2
View File
@@ -0,0 +1,2 @@
---
# Keine Handler erforderlich docker compose up -d ersetzt laufende Container eigenständig
+2
View File
@@ -0,0 +1,2 @@
- name: Update Hawser Docker stack
ansible.builtin.import_tasks: update-stack.yml
+31
View File
@@ -0,0 +1,31 @@
- name: Gather Docker host information
community.docker.docker_host_info:
register: hawser_docker_info
ignore_errors: true
- name: Check if Hawser compose file is present
ansible.builtin.stat:
path: "{{ hawser_compose_dir }}/docker-compose.yml"
register: hawser_compose_file
when: hawser_docker_info is not failed
- name: Deploy Hawser compose file from template
ansible.builtin.template:
src: docker-compose.yml.j2
dest: "{{ hawser_compose_dir }}/docker-compose.yml"
owner: root
group: root
mode: "0640"
when:
- hawser_docker_info is not failed
- hawser_compose_file.stat.exists
- name: Pull latest images and recreate Hawser stack
community.docker.docker_compose_v2:
project_src: "{{ hawser_compose_dir }}"
project_name: "{{ hawser_project_name }}"
state: present
pull: always
when:
- hawser_docker_info is not failed
- hawser_compose_file.stat.exists
@@ -0,0 +1,17 @@
services:
hawser:
container_name: hawser
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- {{ hawser_stacks_volume }}:/data/stacks
ports:
- "{{ hawser_port }}:2376"
environment:
- ALLOW_INSECURE_NO_AUTH={{ hawser_allow_insecure_no_auth | string | lower }}
image: ghcr.io/finsys/hawser:latest
restart: always
volumes:
{{ hawser_stacks_volume }}:
external: true
name: {{ hawser_stacks_volume }}