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