Add hawser role and playbook for stack upgrades
This commit is contained in:
@@ -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"
|
||||
@@ -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
|
||||
@@ -0,0 +1,2 @@
|
||||
---
|
||||
# Keine Handler erforderlich – docker compose up -d ersetzt laufende Container eigenständig
|
||||
@@ -0,0 +1,2 @@
|
||||
- name: Update Hawser Docker stack
|
||||
ansible.builtin.import_tasks: update-stack.yml
|
||||
@@ -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 }}
|
||||
Reference in New Issue
Block a user