tinyblargon.docker_deploy
Rol de Ansible: despliegue de Docker
Rol de Ansible para desplegar una pila de Docker Compose (archivo).
Requisitos
Sistema local
rsync
Sistema desplegado
docker-ce
docker-ce-cli
containerd.io
docker-compose-plugin
odocker-compose
Variables del rol
Nombre de la variable | Tipo | Valor por defecto | Descripción |
---|---|---|---|
docker_deploy_source: | string | "docker-deploy" | El directorio local que contiene el despliegue de Docker y el archivo de composición. Este directorio es relativo al directorio principal de los playbooks. |
docker_deploy_destination: | string | "/opt/docker-deploy" | La carpeta de destino a la que se debe clonar el despliegue. |
docker_deploy_compose_file: | string | "docker-compose.yml" | El nombre del archivo de composición de Docker que se debe iniciar. |
docker_deploy_files: | lista mapa | [] | Una lista de archivos que se deben copiar a docker_deploy_destination: , más información sobre el mapa se puede encontrar en el siguiente capítulo Docker_deploy_files. |
docker_deploy_compatibility: | bool | true | Habilitar la opción --compatibility al iniciar el archivo de composición. |
docker_deploy_remove_orphans: | bool | true | Habilitar la opción --remove-orphans al iniciar el archivo de composición. |
docker_deploy_build: | bool | false | Habilitar la opción --build cuando alguno de los archivos en docker_deploy_source: o docker_deploy_files: haya cambiado. |
docker_deploy_recreate: | bool | false | Habilitar la opción --force-recreate cuando alguno de los archivos en docker_deploy_source: o docker_deploy_files: haya cambiado. |
docker_deploy_compose_plugin: | bool | true | Especificar si se debe usar el comando docker compose o docker-compose , true para docker compose , false para docker-compose . |
docker_deploy_prune: | lista | ["image"] | Qué comandos de limpieza se deben ejecutar después de realizar un cambio en el despliegue de la composición. El valor puede ser una combinación de cualquiera de las siguientes opciones "builder" , "container" , "image" , "network" , "system" , "volume" . |
docker_deploy_state: | string | "present" | Cuando es "present" , el docker_deploy_source: se sincronizará con el docker_deploy_destination: y el docker_deploy_compose_file: se iniciará. Cuando es "absent" , el docker_deploy_compose_file: en docker_deploy_destination: se detendrá. |
docker_deploy_rsync_opts: | lista | ['--exclude="*.example"'] | Especificar opciones adicionales de rsync pasando una matriz. Todos los dest especificados en docker_deploy_files: se excluirán automáticamente de rsync. |
docker_deploy_show_warnings: | bool | true | Mostrar las advertencias de Docker Compose. |
docker_deploy_absent_volume: | bool | false | Solo se aplica cuando docker_deploy_state: es "absent" . Habilita la opción --volumes al detener el archivo de composición, esto eliminará todos los volúmenes que se especifican en el archivo de composición. |
docker_deploy_absent_remove: | bool | false | Solo se aplica cuando docker_deploy_state: es "absent" . Si es true , se eliminará docker_deploy_destination: . |
Docker_deploy_files
Nombre de la variable | Tipo | Valor por defecto | Descripción |
---|---|---|---|
content: | string | "" | Cuando se usa en lugar de src , establece el contenido de un archivo directamente al valor especificado. Funciona solo cuando dest es un archivo. Crea el archivo si no existe. |
dest: | string | Ruta remota relativa a docker_deploy_destination: donde se debe copiar el archivo. Si src es un directorio, esto también debe ser un directorio. Si dest es una ruta no existente y si dest termina con “/” o src es un directorio, se crea dest . Si dest es una ruta relativa, el directorio inicial se determina por el host remoto. Si src y dest son archivos, el directorio padre de dest no se crea y la tarea falla si no existe. Todos los dest serán automáticamente excluidos de rsync. |
|
group: | string | "root" | Nombre del grupo que debe ser dueño del objeto del sistema de archivos, como se pasaría a chown. |
mode: | string | Los permisos del archivo o directorio de destino. Documentación de Ansible para más detalles | |
owner: | string | "root" | Nombre del usuario que debe ser dueño del objeto del sistema de archivos, como se pasaría a chown. Especificar un nombre de usuario numérico se asumirá como un ID de usuario y no un nombre de usuario. Evitar nombres de usuario numéricos para evitar esta confusión. |
src: | string | Ruta local a un archivo para copiar al servidor remoto. Esto puede ser absoluto o relativo. Si la ruta es un directorio, se copia recursivamente. En este caso, si la ruta termina con “/”, solo se copian el contenido dentro de ese directorio al destino. De lo contrario, si no termina con “/”, se copia el directorio mismo con todo su contenido. Este comportamiento es similar a la herramienta de línea de comandos rsync. | |
no_log: | bool | false | Si es true , el contenido no puede ser registrado. |
Cuando content:
y src:
no se especifican, se crea un archivo vacío en el destino.
Ejemplos de Playbooks
Presente
- 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"
Ausente
- 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
Licencia
MIT
Acerca del proyecto
Ansible role to deploy a docker compose stack (file).
Instalar
ansible-galaxy install tinyblargon.docker_deploy
Licencia
mit
Descargas
1.1k
Propietario
If the DevOps tooling doesn't exist, I'll write it myself.