gendall.docker_stack
Docker Stack
Un rôle pour déployer une pile Docker à partir d'un fichier docker-compose.yml dans le répertoire du playbook.
Utilisation
Le registre Docker utilise par défaut le GitHub Package Registry, mais il peut être modifié en passant un nouveau nom d'hôte (par exemple, docker.io) comme variable docker_registry
. Les identifiants doivent être définis comme des variables d'environnement :
DOCKER_USERNAME=moncompteDocker
DOCKER_PASSWORD=ah32hg3hrgrmbds
Si un fichier de secrets nommé secrets.conf
du projet Vaultenv existe dans le répertoire du playbook, le rôle le copie sur le serveur et crée un fichier .env
contenant les identifiants Vault s'ils sont passés comme variables d'environnement :
VAULT_ADDR=https://vault.entreprise.com:443
VAULT_TOKEN=s.g23gberb32b322b23b4
Le rôle créera des Secrets Docker à partir de tous les fichiers trouvés dans {{ inventory_dir }}/secrets
. En raison des limitations de la rotation des Docker Secrets, le rôle supprime et recrée la pile à chaque mise à jour. Cela permet d'éviter que les secrets ne soient utilisés lors de leur mise à jour.
Si une variable d'environnement PROJECT
est définie, elle sera utilisée comme nom de la pile. Si TAG
et ENV
sont définis, ils seront transmis au Swarm.
Utilisation
Incluez ce rôle dans un playbook en utilisant un fichier requirements.txt.
Exemple de playbook
- hosts: manager[0]
roles:
- docker-stack
Déploiement
Ce rôle sera automatiquement construit et déployé sur Ansible Galaxy lorsque un tag Semver est poussé dans le dépôt.
A role to deploy a Docker Stack from a docker-compose.yml file and configure Vaultenv
ansible-galaxy install gendall.docker_stack