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-pluginou- 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 --compatibilitylors du démarrage du fichier Compose. | 
| docker_deploy_remove_orphans: | booléen | vrai | Activer le drapeau --remove-orphanslors du démarrage du fichier Compose. | 
| docker_deploy_build: | booléen | faux | Activer le drapeau --buildlorsque des fichiers dansdocker_deploy_source:oudocker_deploy_files:ont changé. | 
| docker_deploy_recreate: | booléen | faux | Activer le drapeau --force-recreatelorsque des fichiers dansdocker_deploy_source:oudocker_deploy_files:ont changé. | 
| docker_deploy_compose_plugin: | booléen | vrai | Indiquer si la commande docker composeoudocker-composedoit être utilisée,vraipourdocker compose,fauxpourdocker-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é avecdocker_deploy_destination:et ledocker_deploy_compose_file:sera lancé. Lorsque"absent", ledocker_deploy_compose_file:dansdocker_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 destspécifiés dansdocker_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". Sivrai, ledocker_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 lorsquedestest 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é. Sisrcest un répertoire, cela doit aussi être un répertoire. Sidestest un chemin non existant et quedestse termine par “/” ou sisrcest un répertoire,destest créé. Sidestest un chemin relatif, le répertoire de départ est déterminé par l'hôte distant. Sisrcetdestsont des fichiers, le répertoire parent dedestn'est pas créé et la tâche échoue si cela n'existe pas déjà. Tous lesdestseront 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
Installer
 ansible-galaxy install tinyblargon.docker_deployLicence
 
            mit
          
Téléchargements
 
            1.6k
          
Propriétaire
 If the DevOps tooling doesn't exist, I'll write it myself.
