Este grupo de expertos luego de ciertos días de trabajo y de recopilar de datos, obtuvieron los datos necesarios, nuestro deseo es que todo este artículo sea de utilidad en tu plan.
Nota
Este complemento es parte del colección community.docker (versión 1.2.2).
Para instalarlo use: ansible-galaxy collection install community.docker
.
Para usarlo en un libro de jugadas, especifique: community.docker.docker_compose
.
- Sinopsis
- Requisitos
- Parámetros
- Notas
- Ejemplos de
- Valores devueltos
Sinopsis
- Utiliza Docker Compose para iniciar, cerrar y escalar servicios.
- Funciona con componer versiones 1 y 2.
- La configuración se puede leer desde un
docker-compose.yml
odocker-compose.yaml
archivo o en línea usando el definición opción. - Consulte los ejemplos para obtener más detalles.
- Admite el modo de verificación.
- Este módulo se llamó
docker_service
antes de Ansible 2.8. El uso no cambió.
Requisitos
Los siguientes requisitos son necesarios en el host que ejecuta este módulo.
- API de Docker> = 1.20
- SDK de Docker para Python: tenga en cuenta que el docker-py El módulo de Python ha sido reemplazado por estibador (ver aquí para detalles). Para Python 2.6,
docker-py
debe ser usado. De lo contrario, se recomienda instalar eldocker
Módulo de Python. Tenga en cuenta que ambos módulos deben no ser instalado al mismo tiempo. También tenga en cuenta que cuando ambos módulos están instalados y uno de ellos se desinstala, es posible que el otro deje de funcionar y sea necesario volver a instalarlo. - SDK de Docker para Python > = 1.8.0 (utilizar docker-py para Python 2.6)
- PyYAML> = 3,11
- docker-compose> = 1.7.0
Parámetros
Parámetro | Opciones / Valores predeterminados | Comentarios |
---|---|---|
api_versioncuerda | Defecto: “auto” |
La versión de la API de Docker que se ejecuta en el host de Docker. El valor predeterminado es la última versión de la API compatible con Docker SDK para Python y el demonio de Docker. Si el valor no se especifica en la tarea, el valor de la variable de entorno DOCKER_API_VERSION se utilizará en su lugar. Si no se establece la variable de entorno, se utilizará el valor predeterminado.alias: docker_api_version |
construirbooleano |
|
Usar con estadopresent para crear siempre imágenes antes de iniciar la aplicación. docker-compose build con la opción de extracción. Las imágenes solo se reconstruirán si Docker detecta un cambio en el Dockerfile o en el contenido del directorio de compilación. sin caché opción para ignorar la memoria caché de la imagen al realizar la compilación.Si se reemplaza una imagen existente, los servicios que usan la imagen se volverán a crear a menos que recrear es never . |
ca_certsendero | Utilice un certificado de CA al realizar la verificación del servidor proporcionando la ruta a un archivo de certificado de CA Si el valor no se especifica en la tarea y la variable de entorno DOCKER_CERT_PATH está configurado, el archivo ca.pem desde el directorio especificado en la variable de entorno DOCKER_CERT_PATH se utilizará.alias: tls_ca_cert, cacert_path |
|
client_certsendero | Ruta al archivo de certificado TLS del cliente. Si el valor no se especifica en la tarea y la variable de entorno DOCKER_CERT_PATH está configurado, el archivo cert.pem desde el directorio especificado en la variable de entorno DOCKER_CERT_PATH se utilizará.alias: tls_client_cert, cert_path |
|
clave_clientesendero | Ruta al archivo de claves TLS del cliente Si el valor no se especifica en la tarea y la variable de entorno DOCKER_CERT_PATH está configurado, el archivo key.pem desde el directorio especificado en la variable de entorno DOCKER_CERT_PATH se utilizará.alias: tls_client_key, key_path |
|
depurarbooleano |
|
Modo de depuración |
definicióndiccionario | Redacte un archivo que describa uno o más servicios, redes y volúmenes. project_src y archivos. | |
dependenciasbooleano |
|
Cuando estado es present especificar si incluir o no los servicios vinculados. |
docker_hostcuerda | Defecto: “unix: //var/run/docker.sock” |
La URL o la ruta del socket de Unix utilizada para conectarse a la API de Docker. Para conectarse a un host remoto, proporcione la cadena de conexión TCP. Por ejemplo, tcp://192.0.2.23:2376 . Si se utiliza TLS para cifrar la conexión, el módulo reemplazará automáticamente tcp en la URL de conexión con https .Si el valor no se especifica en la tarea, el valor de la variable de entorno DOCKER_HOST se utilizará en su lugar. Si no se establece la variable de entorno, se utilizará el valor predeterminado.alias: docker_url |
archivoslista / elementos = camino | Lista de nombres de archivos de composición relativa a project_src. Anulaciones docker-compose.yml o docker-compose.yaml Los archivos se cargan y combinan en el orden indicado. |
|
hostname_checkbooleano |
|
Si se debe verificar o no el nombre de host del demonio de Docker con el nombre proporcionado en el certificado del cliente. |
sin cachébooleano |
|
Usar con el construir opción para ignorar el caché durante el proceso de creación de la imagen. |
nombre del proyectocuerda | Proporcione un nombre de proyecto. Si no se proporciona, el nombre del proyecto se toma del nombre base de project_src.Requiere cuando definición está provisto. | |
project_srcsendero | Ruta a un directorio que contiene un docker-compose.yml o docker-compose.yaml archivo.Mutualmente exclusivo con definición.Requiere cuando no definición está provisto. |
|
jalarbooleano |
|
Usar con estadopresent para extraer siempre imágenes antes de iniciar la aplicación. docker-compose pull .Cuando se extrae una nueva imagen, los servicios que utilizan la imagen se volverán a crear a menos que recrear es never . |
recrearcuerda |
|
De forma predeterminada, los contenedores se volverán a crear cuando su configuración difiera de la definición del servicio. never ignora las diferencias de configuración y deja los contenedores existentes sin cambios. always obliga a la recreación de todos los contenedores existentes. |
remove_imagescuerda |
|
Usar con estadoabsent para eliminar todas las imágenes o solo las imágenes locales. |
remove_orphansbooleano |
|
Elimine los contenedores de los servicios no definidos en el archivo Compose. |
remove_volumesbooleano |
|
Usar con estadoabsent para eliminar volúmenes de datos. |
reiniciadobooleano |
|
Usar con estadopresent para reiniciar todos los contenedores definidos en el archivo Compose. servicios está definido, solo se reiniciarán los contenedores enumerados allí. |
escaladiccionario | Cuando estado es present servicios de escala. Proporcione un diccionario de pares clave / valor donde la clave es el nombre del servicio y el valor es un recuento entero para el número de contenedores. |
|
servicioslista / elementos = cadena | Cuando estado es present correr docker-compose up resp. docker-compose stop (con interrumpido) resp. docker-compose restart (con reiniciado) en un subconjunto de servicios. Si está vacío, que es el valor predeterminado, la operación se realizará en todos los servicios definidos en el archivo Compose (o en línea definición). |
|
ssl_versioncuerda | Proporcione un número de versión de SSL válido. Valor predeterminado determinado por el módulo ssl.py Si el valor no se especifica en la tarea, el valor de la variable de entorno DOCKER_SSL_VERSION se utilizará en su lugar. |
|
estadocuerda |
|
Estado deseado del proyecto. present es lo mismo que correr docker-compose up resp. docker-compose stop (con interrumpido) resp. docker-compose restart (con reiniciado) .Especificando absent es lo mismo que correr docker-compose down . |
interrumpidobooleano |
|
Usar con estadopresent para detener todos los contenedores definidos en el archivo Compose. servicios está definido, solo se detendrán los contenedores enumerados allí. |
se acabó el tiempoentero | Defecto: 10 |
tiempo de espera en segundos para el cierre del contenedor cuando está conectado o cuando los contenedores ya se están ejecutando. |
tlsbooleano |
|
Asegure la conexión a la API mediante TLS sin verificar la autenticidad del servidor host de Docker. Tenga en cuenta que si validate_certs se establece en yes también, tendrá prioridad. Si el valor no se especifica en la tarea, el valor de la variable de entorno DOCKER_TLS se utilizará en su lugar. Si la variable de entorno no está configurada, el valor predeterminado será usó. |
tls_hostnamecuerda | Defecto: “localhost” |
Al verificar la autenticidad del servidor de Docker Host, proporcione el nombre esperado del servidor.Si el valor no se especifica en la tarea, el valor de la variable de entorno DOCKER_TLS_HOSTNAME se utilizará en su lugar. Si no se establece la variable de entorno, se utilizará el valor predeterminado. |
validate_certsbooleano |
|
Asegure la conexión a la API utilizando TLS y verificando la autenticidad del servidor host de Docker. Si el valor no se especifica en la tarea, el valor de la variable de entorno DOCKER_TLS_VERIFY se utilizará en su lugar. Si no se establece la variable de entorno, se utilizará el valor predeterminado.alias: tls_verify |
Notas
Nota
- Conéctese al demonio de Docker proporcionando parámetros con cada tarea o definiendo variables de entorno. Puedes definir
DOCKER_HOST
,DOCKER_TLS_HOSTNAME
,DOCKER_API_VERSION
,DOCKER_CERT_PATH
,DOCKER_SSL_VERSION
,DOCKER_TLS
,DOCKER_TLS_VERIFY
yDOCKER_TIMEOUT
. Si está utilizando una máquina acoplable, ejecute el script que se envía con el producto que configura el entorno. Establecerá estas variables por ti. Ver https://docs.docker.com/machine/reference/env/ para más detalles. - Al conectarse al demonio de Docker con TLS, es posible que deba instalar paquetes de Python adicionales. Para el SDK de Docker para Python, versión 2.4 o posterior, esto se puede hacer instalando
docker[tls]
con ansible.builtin.pip. - Tenga en cuenta que el SDK de Docker para Python solo permite especificar la ruta a la configuración de Docker para muy pocas funciones. En general, utilizará
$HOME/.docker/config.json
Si elDOCKER_CONFIG
la variable de entorno no está especificada, y use$DOCKER_CONFIG/config.json
de lo contrario. - Este módulo utiliza el SDK de Docker para Python para comunicarse con el demonio de Docker.
Ejemplos de
# Examples use the django example at https://docs.docker.com/compose/django. Follow it to create the# flask directory-name: Run using a project directory hosts: localhost gather_facts: no tasks:-name: Tear down existing services community.docker.docker_compose:project_src: flask state: absent -name: Create and start services community.docker.docker_compose:project_src: flask register: output -ansible.builtin.debug:var: output -name: Run `docker-compose up` again community.docker.docker_compose:project_src: flask build: no register: output -ansible.builtin.debug:var: output -ansible.builtin.assert:that:"not output.changed "-name: Stop all services community.docker.docker_compose:project_src: flask build: no stopped: yes register: output -ansible.builtin.debug:var: output -ansible.builtin.assert:that:-"not web.flask_web_1.state.running"-"not db.flask_db_1.state.running"-name: Restart services community.docker.docker_compose:project_src: flask build: no restarted: yes register: output -ansible.builtin.debug:var: output -ansible.builtin.assert:that:-"web.flask_web_1.state.running"-"db.flask_db_1.state.running"-name: Scale the web service to 2 hosts: localhost gather_facts: no tasks:-community.docker.docker_compose:project_src: flask scale:web:2register: output -ansible.builtin.debug:var: output -name: Run with inline v2 compose hosts: localhost gather_facts: no tasks:-community.docker.docker_compose:project_src: flask state: absent -community.docker.docker_compose:project_name: flask definition:version:'2'services:db:image: postgres web:build:" playbook_dir /flask"command:"python manage.py runserver 0.0.0.0:8000"volumes:-" playbook_dir /flask:/code"ports:-"8000:8000"depends_on:- db register: output -ansible.builtin.debug:var: output -ansible.builtin.assert:that:-"web.flask_web_1.state.running"-"db.flask_db_1.state.running"-name: Run with inline v1 compose hosts: localhost gather_facts: no tasks:-community.docker.docker_compose:project_src: flask state: absent -community.docker.docker_compose:project_name: flask definition:db:image: postgres web:build:" playbook_dir /flask"command:"python manage.py runserver 0.0.0.0:8000"volumes:-" playbook_dir /flask:/code"ports:-"8000:8000"links:- db register: output -ansible.builtin.debug:var: output -ansible.builtin.assert:that:-"web.flask_web_1.state.running"-"db.flask_db_1.state.running"
Valores devueltos
Los valores de retorno comunes están documentados aquí, los siguientes son los campos exclusivos de este módulo:
Llave | Devuelto | Descripción | |||
---|---|---|---|---|---|
comportamientocomplejo | cuando está en modo de verificación o depurar es yes |
Proporciona las acciones que se deben tomar en cada servicio según lo determinado por redactar. | |||
Nombre del Serviciocomplejo | siempre | Nombre del servicio. | |||
acciónlista / elementos = cadena | siempre | Un nombre descriptivo de la acción que se realizará en los contenedores del servicio. | |||
identificacióncuerda | siempre | la identificación larga del contenedor | |||
nombrecuerda | siempre | el nombre del contenedor | |||
short_idcuerda | siempre | la identificación corta del contenedor | |||
imagen_construidacomplejo | en la construcción de la imagen | Proporciona detalles de la imagen cuando se crea una nueva imagen para el servicio. | |||
identificacióncuerda | siempre | hash de imagen | |||
nombrecuerda | siempre | nombre de la imagen | |||
pull_imagecomplejo | en el tirón de la imagen | Proporciona detalles de la imagen cuando se extrae una nueva imagen para el servicio. | |||
identificacióncuerda | siempre | hash de imagen | |||
nombrecuerda | siempre | nombre de la imagen | |||
servicioscomplejo | éxito | Un diccionario que asigna el nombre del servicio a un diccionario de contenedores. | |||
nombre_contenedorcomplejo | éxito | Nombre del contenedor. El formato es project_service_# . |
|||
cmdlista / elementos = cadena | éxito | Uno o más comandos a ejecutar en el contenedor. Muestra:[‘postgres’] |
|||
imagencuerda | éxito | Nombre de la imagen a partir de la cual se construyó el contenedor. Muestra:postgres |
|||
etiquetasdiccionario | éxito | Metadatos asignados al contenedor. Muestra:‘…’: Ninguno |
|||
redeslista / elementos = diccionario | éxito | Contiene un diccionario para cada red a la que pertenece el contenedor. | |||
aliaslista / elementos = cadena | éxito | Alias asignados al contenedor por la red. Muestra:[‘db’] |
|||
globalIPv6cuerda | éxito | Dirección IPv6 asignada al contenedor. | |||
globalIPv6PrefixLenentero | éxito | Longitud de la subred IPv6. | |||
Dirección IPcuerda | éxito | La dirección IP asignada al contenedor. Muestra:172.17.0.2 |
|||
IPPrefixLenentero | éxito | Número de bits utilizados por la subred. Muestra:dieciséis |
|||
Enlaceslista / elementos = cadena | éxito | Lista de nombres de contenedores a los que está vinculado este contenedor. | |||
dirección MACcuerda | éxito | Dirección Mac asignada a la NIC virtual. Muestra:02: 42: ac: 11: 00: 02 |
|||
estadodiccionario | éxito | Información sobre la disposición actual del contenedor. | |||
corriendobooleano | éxito | Si el contenedor tiene un proceso en ejecución o no. Muestra:Cierto |
|||
estadocuerda | éxito | Descripción del estado de ejecución. Muestra:corriendo |
Autores
- Chris Houseknecht (@chouseknecht)
Reseñas y calificaciones
Al final de la página puedes encontrar las críticas de otros administradores, tú todavía puedes mostrar el tuyo si dominas el tema.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)