tinyblargon.docker_deploy
Ansible Rolle: Docker bereitstellen
Ansible-Rolle zum Bereitstellen eines Docker-Compose-Stacks (Datei).
Anforderungen
Lokales System
rsync
Bereitgestelltes System
docker-ce
docker-ce-cli
containerd.io
docker-compose-plugin
oderdocker-compose
Rollenvariablen
Variablenname | Typ | Standardwert | Beschreibung |
---|---|---|---|
docker_deploy_source: | string | "docker-deploy" | Das lokale Verzeichnis, das die Docker-Bereitstellungs- und Compose-Datei enthält. Dieses Verzeichnis ist relativ zum Hauptverzeichnis der Playbooks. |
docker_deploy_destination: | string | "/opt/docker-deploy" | Der Zielordner, in den die Bereitstellung geklont werden soll. |
docker_deploy_compose_file: | string | "docker-compose.yml" | Der Name der Docker-Compose-Datei, die gestartet werden soll. |
docker_deploy_files: | list map | [] | Eine Liste von Dateien, die in das docker_deploy_destination: kopiert werden sollen. Weitere Informationen zur Zuordnung finden Sie im nächsten Kapitel Docker_deploy_files. |
docker_deploy_compatibility: | bool | true | Aktiviert das --compatibility -Flag beim Starten der Compose-Datei. |
docker_deploy_remove_orphans: | bool | true | Aktiviert das --remove-orphans -Flag beim Starten der Compose-Datei. |
docker_deploy_build: | bool | false | Aktiviert das --build -Flag, wenn sich eine der Dateien in docker_deploy_source: oder docker_deploy_files: geändert hat. |
docker_deploy_recreate: | bool | false | Aktiviert das --force-recreate -Flag, wenn sich eine der Dateien in docker_deploy_source: oder docker_deploy_files: geändert hat. |
docker_deploy_compose_plugin: | bool | true | Geben Sie an, ob der Befehl docker compose oder docker-compose verwendet werden soll; true für docker compose , false für docker-compose . |
docker_deploy_prune: | list | ["image"] | Welche Prune-Befehle nach einer Änderung an der Compose-Bereitstellung ausgeführt werden sollen. Der Wert kann eine Kombination der folgenden Optionen sein: "builder" , "container" , "image" , "network" , "system" , "volume" . |
docker_deploy_state: | string | "present" | Wenn "present" , wird docker_deploy_source: mit docker_deploy_destination: synchronisiert und die docker_deploy_compose_file: wird gestartet. Wenn "absent" , wird die docker_deploy_compose_file: im docker_deploy_destination: heruntergefahren. |
docker_deploy_rsync_opts: | list | ['--exclude="*.example"'] | Zusätzliche Rsync-Optionen können durch Übergabe eines Arrays angegeben werden. Alle dest , die in docker_deploy_files: angegeben sind, werden automatisch von Rsync ausgeschlossen. |
docker_deploy_show_warnings: | bool | true | Zeigt die Docker-Compose-Warnungen an. |
docker_deploy_absent_volume: | bool | false | Gilt nur, wenn docker_deploy_state: "absent" ist. Aktiviert das --volumes-Flag beim Herunterfahren der Compose-Datei, wodurch alle Volumes gelöscht werden, die in der Compose-Datei angegeben sind. |
docker_deploy_absent_remove: | bool | false | Gilt nur, wenn docker_deploy_state: "absent" ist. Wenn true , wird docker_deploy_destination: gelöscht. |
Docker_deploy_files
Variablenname | Typ | Standardwert | Beschreibung |
---|---|---|---|
content: | string | "" | Wenn anstelle von src verwendet, werden die Inhalte einer Datei direkt auf den angegebenen Wert gesetzt. Funktioniert nur, wenn dest eine Datei ist. Erstellt die Datei, wenn sie nicht existiert. |
dest: | string | Remote-Pfad relativ zu docker_deploy_destination: , wohin die Datei kopiert werden soll. Wenn src ein Verzeichnis ist, muss dies ebenfalls ein Verzeichnis sein. Wenn dest ein nicht vorhandener Pfad ist und dest mit “/” endet oder src ein Verzeichnis ist, wird dest erstellt. Wenn dest ein relativer Pfad ist, wird das Startverzeichnis vom Remote-Host bestimmt. Wenn src und dest Dateien sind, wird das übergeordnete Verzeichnis von dest nicht erstellt und die Aufgabe schlägt fehl, wenn es nicht bereits existiert. Alle dest werden automatisch von Rsync ausgeschlossen. |
|
group: | string | "root" | Name der Gruppe, die das Dateisystem-Objekt besitzen soll, wie es an chown übergeben würde. |
mode: | string | Die Berechtigungen der Ziel-Datei oder -Verzeichnisses. Ansible-Dokumentation für weitere Details | |
owner: | string | "root" | Name des Benutzers, der das Dateisystem-Objekt besitzen soll, wie es an chown übergeben würde. Die Angabe eines numerischen Benutzernamens wird als Benutzer-ID interpretiert und nicht als Benutzername. Vermeiden Sie numerische Benutzernamen, um Verwirrung zu vermeiden. |
src: | string | Lokaler Pfad zu einer Datei, die auf den Remote-Server kopiert werden soll. Dies kann absolut oder relativ sein. Wenn der Pfad ein Verzeichnis ist, wird er rekursiv kopiert. In diesem Fall, wenn der Pfad mit “/” endet, werden nur die Inhalte dieses Verzeichnisses in das Ziel kopiert. Andernfalls, wenn es nicht mit “/” endet, wird das Verzeichnis selbst mit allen Inhalten kopiert. Dieses Verhalten ähnelt dem des Rsync-Befehlszeilenwerkzeugs. | |
no_log: | bool | false | Wenn true , kann der Inhalt nicht protokolliert werden. |
Wenn sowohl content:
als auch src:
nicht angegeben sind, wird eine leere Datei am Ziel erstellt.
Beispiel-Playbooks
Vorhanden
- hosts: all
roles:
- role: tinyblargon.docker_deploy
vars:
docker_deploy_source: "docker-deploy"
docker_deploy_destination: "/opt/docker-deploy"
docker_deploy_compose_file: "docker-compose.yml"
docker_deploy_files:
- dest: ".env"
src: ".env"
- dest: ".secrets/password.txt"
content: "{{ lookup('file', 'password.txt') }}"
owner: "root"
group: "root"
mode: "0600"
no_log: true
docker_deploy_compatibility: true
docker_deploy_remove_orphans: true
docker_deploy_recreate: true
docker_deploy_compose_plugin: false
docker_deploy_prune: ["system"]
docker_deploy_state: "present"
Abwesend
- hosts: all
roles:
- role: tinyblargon.docker_deploy
vars:
docker_deploy_destination: "/opt/docker-deploy"
docker_deploy_compose_file: "docker-compose.yml"
docker_deploy_compose_plugin: false
docker_deploy_prune: ["system", "volume"]
docker_deploy_state: "absent"
docker_deploy_absent_volume: true
docker_deploy_absent_remove: true
Lizenz
MIT
Installieren
ansible-galaxy install tinyblargon.docker_deploy
Lizenz
mit
Downloads
1.1k
Besitzer
If the DevOps tooling doesn't exist, I'll write it myself.