gendall.docker_stack
Docker Stack
Eine Rolle zur Bereitstellung eines Docker Stacks aus einer docker-compose.yml-Datei im Verzeichnis des Playbooks.
Nutzung
Das Standard-Docker-Registry ist das GitHub Package Registry, kann jedoch durch Übergabe eines neuen Hostnamens (z. B. docker.io) als Variable docker_registry
geändert werden. Die Anmeldeinformationen sind Passwörter als Umgebungsvariablen:
DOCKER_USERNAME=mydockeraccount
DOCKER_PASSWORD=ah32hg3hrgrmbds
Wenn eine Vaultenv Geheimnisdatei mit dem Namen secrets.conf
im Verzeichnis des Playbooks vorhanden ist, wird diese auf den Server kopiert und eine .env
-Datei erstellt, die Vault Anmeldeinformationen enthält, wenn sie als Umgebungsvariablen übergeben werden:
VAULT_ADDR=https://vault.company.com:443
VAULT_TOKEN=s.g23gberb32b322b23b4
Die Rolle erstellt Docker Secrets aus allen Dateien, die im Verzeichnis {{ inventory_dir }}/secrets
gefunden werden. Aufgrund der Beschränkungen bei der Rotation von Docker Secrets entfernt die Rolle den Stack bei jedem Update und erstellt ihn neu. Dadurch ist sichergestellt, dass die Geheimnisse beim Aktualisieren nicht verwendet werden.
Wenn eine Umgebungsvariable PROJECT
gesetzt ist, wird sie als Stack-Name verwendet. Wenn TAG
und ENV
gesetzt sind, werden diese an das Swarm weitergegeben.
Nutzung
Fügen Sie diese Rolle in ein Playbook ein, indem Sie eine requirements.txt Datei verwenden.
Beispiel-Playbook
- hosts: manager[0]
roles:
- docker-stack
Bereitstellung
Diese Rolle wird automatisch erstellt und bereitgestellt, wenn ein Semver Tag in das Repository gepusht wird.
A role to deploy a Docker Stack from a docker-compose.yml file and configure Vaultenv
ansible-galaxy install gendall.docker_stack