Co-authored-by: DerLinkman <derlinkman@gmail.com> Reviewed-on: #1
3.7 KiB
Rolle hawser
Aktualisiert den Hawser Docker-Compose-Stack
auf den Ziel-Hosts. Hawser ist ein Docker-Management-Agent, der das Docker-
Socket nach außen freigibt. Die Rolle deployt die Compose-Datei aus einem
Template und zieht stets die neuesten Images (pull: always).
Siehe auch das Playbook
playbooks/upgrade-hawser.ymlsowie die Repo-README.
Voraussetzungen
- Debian-Ziel-Host mit installierter Docker Engine (Rolle
docker) - Bereits vorhandene Hawser-Installation
(
/opt/hawser/docker-compose.ymlmuss existieren) community.dockerCollection
Einbindung
- hosts: all
become: true
user: admin
roles:
- role: hawser
ansible-playbook -i inventory/dmc12.yml playbooks/upgrade-hawser.yml
Funktionsweise
tasks/main.yml importiert tasks/update-stack.yml:
- Docker-Host-Info sammeln – prüft, ob Docker erreichbar ist
(
community.docker.docker_host_info). Bei Fehler werden nachfolgende Tasks übersprungen. - Compose-Datei prüfen –
statauf<hawser_compose_dir>/docker-compose.yml. Fehlt die Datei, wird kein Update durchgeführt (Bestandsschutz). - Compose-Datei ausliefern – Template
docker-compose.yml.j2wird nur geschrieben, wenn Docker erreichbar UND bereits eine Compose-Datei vorhanden ist. - Stack aktualisieren –
community.docker.docker_compose_v2mitpull: alwaysundstate: presentzieht die neuesten Images und erneuert die Container.
Variablen
| Variable | Typ | Default | Beschreibung |
|---|---|---|---|
hawser_project_name |
string | hawser |
Name des Docker-Compose-Projekts |
hawser_compose_dir |
string | /opt/hawser |
Verzeichnis der Compose-Datei auf dem Zielhost |
hawser_port |
string | 2376 |
Freigegebener Port des Hawser-Agents (Host-Port) |
hawser_stacks_volume |
string | hawser_stacks |
Name des externen Docker-Volumes für Stack-Dateien |
hawser_allow_insecure_no_auth |
bool | true |
ALLOW_INSECURE_NO_AUTH – Standard-Mode ohne Token |
Achtung:
hawser_allow_insecure_no_auth: trueerlaubt den Betrieb ohne Token-Authentifizierung auch auf Nicht-Loopback-Adressen. Nur setzen, wenn das Netzwerk durch andere Maßnahmen (Firewall, VPN) abgesichert ist.
Templates
| Template | Ziel |
|---|---|
docker-compose.yml.j2 |
<hawser_compose_dir>/docker-compose.yml |
Das Template konfiguriert den Hawser-Container mit Socket-Mount, externem
Volume, Port-Mapping, Environment-Variablen, image: ghcr.io/finsys/hawser:latest
und restart: always.
Handler
Keine Handler erforderlich – docker compose up -d ersetzt laufende Container
eigenständig.
Tags
Die Rolle vergibt keine eigenen Tags.
Abhängigkeiten
community.dockerCollection (docker_host_info,docker_compose_v2)- Vorherige Installation der
docker-Rolle
Hinweise
- Die Rolle erzeugt keine Neuinstallation – die Compose-Datei wird nur geschrieben, wenn bereits eine existiert. So wird verhindert, dass Hawser versehentlich auf Hosts ausgebracht wird, auf denen es nicht vorgesehen ist.
- Das externe Volume
hawser_stacksmuss vor dem ersten Start manuell erstellt werden (docker volume create hawser_stacks). pull: alwayssorgt für aktuelle Images, erfordert aber Internetzugang zum ghcr.io-Registry.