tinyblargon.docker_deploy

Rôle Ansible : déploiement Docker

Rôle Ansible pour déployer une stack (fichier) Docker Compose.

Exigences

Système local

  • rsync

Système déployé

  • docker-ce
  • docker-ce-cli
  • containerd.io
  • docker-compose-plugin ou docker-compose

Variables du Rôle

Nom de la variable Type Valeur par défaut Description
docker_deploy_source: chaîne "docker-deploy" Le répertoire local contenant le déploiement Docker et le fichier Compose. Ce répertoire est relatif au répertoire principal des playbooks.
docker_deploy_destination: chaîne "/opt/docker-deploy" Le dossier de destination où le déploiement sera cloné.
docker_deploy_compose_file: chaîne "docker-compose.yml" Le nom du fichier Docker Compose à lancer.
docker_deploy_files: liste [] Une liste de fichiers qui doivent être copiés vers docker_deploy_destination:, plus d'informations sur la carte se trouvent dans le chapitre suivant Docker_deploy_files.
docker_deploy_compatibility: booléen vrai Activer le drapeau --compatibility lors du démarrage du fichier Compose.
docker_deploy_remove_orphans: booléen vrai Activer le drapeau --remove-orphans lors du démarrage du fichier Compose.
docker_deploy_build: booléen faux Activer le drapeau --build lorsque des fichiers dans docker_deploy_source: ou docker_deploy_files: ont changé.
docker_deploy_recreate: booléen faux Activer le drapeau --force-recreate lorsque des fichiers dans docker_deploy_source: ou docker_deploy_files: ont changé.
docker_deploy_compose_plugin: booléen vrai Indiquer si la commande docker compose ou docker-compose doit être utilisée, vrai pour docker compose, faux pour docker-compose.
docker_deploy_prune: liste ["image"] Quelles commandes prune doivent être exécutées après un changement dans le déploiement Compose. La valeur peut être une combinaison des options suivantes : "builder", "container", "image", "network", "system", "volume".
docker_deploy_state: chaîne "présent" Lorsque "présent", docker_deploy_source: sera synchronisé avec docker_deploy_destination: et le docker_deploy_compose_file: sera lancé. Lorsque "absent", le docker_deploy_compose_file: dans docker_deploy_destination: sera arrêté.
docker_deploy_rsync_opts: liste ['--exclude="*.example"'] Spécifier des options rsync supplémentaires en passant un tableau. Tous les dest spécifiés dans docker_deploy_files: seront automatiquement exclus de rsync.
docker_deploy_show_warnings: booléen vrai Afficher les avertissements de Docker Compose.
docker_deploy_absent_volume: booléen faux S'applique uniquement lorsque docker_deploy_state: est "absent". Active le drapeau --volumes lors de l'arrêt du fichier Compose, cela supprimera tous les volumes spécifiés dans le fichier Compose.
docker_deploy_absent_remove: booléen faux S'applique uniquement lorsque docker_deploy_state: est "absent". Si vrai, le docker_deploy_destination: sera supprimé.

Docker_deploy_files

Nom de la variable Type Valeur par défaut Description
content: chaîne "" Lorsqu'il est utilisé à la place de src, définit le contenu d'un fichier directement à la valeur spécifiée. Fonctionne uniquement lorsque dest est un fichier. Crée le fichier s'il n'existe pas.
dest: chaîne Chemin distant relatif à docker_deploy_destination: où le fichier doit être copié. Si src est un répertoire, cela doit aussi être un répertoire. Si dest est un chemin non existant et que dest se termine par “/” ou si src est un répertoire, dest est créé. Si dest est un chemin relatif, le répertoire de départ est déterminé par l'hôte distant. Si src et dest sont des fichiers, le répertoire parent de dest n'est pas créé et la tâche échoue si cela n'existe pas déjà. Tous les dest seront automatiquement exclus de rsync.
group: chaîne "root" Nom du groupe qui doit posséder l'objet système de fichiers, comme cela serait passé à chown.
mode: chaîne Les permissions du fichier ou répertoire de destination. Documentation Ansible pour plus de détails
owner: chaîne "root" Nom de l'utilisateur qui doit posséder l'objet système de fichiers, comme cela serait passé à chown. Spécifier un nom d'utilisateur numérique sera considéré comme un identifiant d'utilisateur et non comme un nom d'utilisateur. Évitez les noms d'utilisateur numériques pour éviter cette confusion.
src: chaîne Chemin local vers un fichier à copier sur le serveur distant. Cela peut être absolu ou relatif. Si le chemin est un répertoire, il est copié récursivement. Dans ce cas, si le chemin se termine par “/”, seuls les contenus à l'intérieur de ce répertoire sont copiés à la destination. Sinon, si cela ne se termine pas par “/”, le répertoire lui-même avec tout son contenu est copié. Ce comportement est similaire à l'outil en ligne de commande rsync.
no_log: booléen faux Si vrai, le contenu ne peut pas être enregistré.

Lorsque content: et src: ne sont pas spécifiés, un fichier vide est créé à la destination.

Exemples de Playbooks

Présent

- 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"

Absent

- 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

Licence

MIT

À propos du projet

Ansible role to deploy a docker compose stack (file).

Installer
ansible-galaxy install tinyblargon.docker_deploy
Licence
mit
Téléchargements
1.1k
Propriétaire
If the DevOps tooling doesn't exist, I'll write it myself.