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_network.

  • Sinopsis
  • Requisitos
  • Parámetros
  • Notas
  • Ejemplos de
  • Valores devueltos

Sinopsis

  • Cree / elimine redes Docker y conecte contenedores a ellas.
  • Realiza en gran medida la misma función que el subcomando CLI “docker network”.

Requisitos

Los siguientes requisitos son necesarios en el host que ejecuta este módulo.

  • 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 el docker 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.10.0 (utilizar docker-py para Python 2.6)
  • El servidor de Docker> = 1.10.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
anexabooleano
    Opciones:

  • no
De forma predeterminada, la lista conectada es canónica, lo que significa que los contenedores que no están en la lista se eliminan de la red. anexa dejar conectados los contenedores existentes.
alias: incremental
acoplablebooleano
    Opciones:

  • no
Si está habilitado, y la red está en el alcance global, los contenedores que no sean de servicio en los nodos trabajadores podrán conectarse a la red.
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
conectadolista / elementos = cadena Lista de nombres de contenedores o ID de contenedores para conectarse a una red Tenga en cuenta que el módulo solo se asegura de que estos contenedores estén conectados a la red, pero no se preocupan por las opciones de conexión. Si confía en direcciones IP específicas, etc., utilice el community.docker.docker_container módulo para asegurarse de que sus contenedores estén conectados correctamente a esta red.
alias: contenedores
depurarbooleano
    Opciones:

  • no
Modo de depuración
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
conductorcuerda Defecto:
“puente”
Especifique el tipo de red. Docker proporciona controladores de puente y superposición, pero también se pueden utilizar controladores de terceros.
opciones_controladordiccionario Diccionario de configuración de red. Consulte la documentación de la ventana acoplable para conocer las opciones y los valores válidos.
enable_ipv6booleano
    Opciones:

  • no
Habilite la red IPv6.
fuerzabooleano
    Opciones:

  • no
Con el estado absent obliga a desconectar todos los contenedores de la red antes de eliminar la red. Con el estado present desconectará todos los contenedores, eliminará la red y volverá a crear la red. Esta opción es necesaria si ha cambiado la IPAM o las opciones del controlador y desea que una red existente se actualice para usar las nuevas opciones.
internobooleano
    Opciones:

  • no
Restrinja el acceso externo a la red.
ipam_configlista / elementos = diccionario Lista de bloques de configuración de IPAM. Consultar Docker docs para opciones y valores válidos. Tenga en cuenta que iprange se escribe de manera diferente aquí (usamos la notación del SDK de Docker para Python).
aux_addressesdiccionario Direcciones IP auxiliares utilizadas por el controlador de red, como una asignación del nombre de host a la IP.
puertacuerda Dirección de puerta de enlace IP.
iprangecuerda Rango de direcciones IP en notación CIDR.
subredcuerda Subconjunto de IP en notación CIDR.
ipam_drivercuerda Especifique un controlador IPAM.
ipam_driver_optionsdiccionario Diccionario de opciones del controlador IPAM.
etiquetasdiccionario Diccionario de etiquetas.
nombrecuerda / requerido Nombre de la red en la que operar.
alias: nombre_red
alcancecuerda
    Opciones:

  • local
  • global
  • enjambre
Especifique el alcance de la red.
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
    Opciones:

  • ausente
  • regalo
absent elimina la red. Si una red tiene contenedores conectados, no se puede eliminar. Utilizar el fuerza opción para desconectar todos los contenedores y eliminar la red.present crea la red, si aún no existe con los parámetros especificados, y conecta la lista de contenedores proporcionada a través del parámetro conectado. Los contenedores que no estén en la lista se desconectarán. Una lista vacía no dejará contenedores conectados a la red. Utilizar el anexa Opción de dejar conectados los contenedores existentes. Utilizar el fuerza opciones para forzar la recreación de la red.
se acabó el tiempoentero Defecto:
60
La cantidad máxima de tiempo en segundos para esperar una respuesta de la API. Si el valor no se especifica en la tarea, el valor de la variable de entorno DOCKER_TIMEOUT se utilizará en su lugar. Si no se establece la variable de entorno, se utilizará el valor predeterminado.
tlsbooleano
    Opciones:

  • no
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 no se establece la variable de entorno, se utilizará el valor predeterminado.
tls_hostnamecuerda Defecto:
“localhost”
Al verificar la autenticidad del servidor 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
    Opciones:

  • no
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

  • Cuando se cambian las opciones de red, el módulo desconecta todos los contenedores de la red, elimina la red y vuelve a crear la red. No intenta volver a conectar contenedores, excepto los enumerados en (conectado, e incluso para estos, no considera opciones de conexión específicas como direcciones IP fijas o direcciones MAC. Si necesita más control sobre cómo se conectan los contenedores a la red, realice un bucle community.docker.docker_container módulo para recorrer sus contenedores para asegurarse de que estén conectados correctamente.
  • El módulo no es compatible con Docker Swarm, es decir, no intentará desconectar o volver a conectar los servicios. Si los servicios están conectados a la red, la eliminación de la red fallará. Cuando se cambian las opciones de red, la red debe eliminarse y volver a crearse, por lo que esto también fallará.
  • 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 y DOCKER_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 el DOCKER_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

-name: Create a network
  community.docker.docker_network:name: network_one

-name: Remove all but selected list of containers
  community.docker.docker_network:name: network_one
    connected:- container_a
      - container_b
      - container_c

-name: Remove a single container
  community.docker.docker_network:name: network_one
    connected:"difference(['container_a']) "-name: Add a container to a network, leaving existing containers connected
  community.docker.docker_network:name: network_one
    connected:- container_a
    appends: yes

-name: Create a network with driver options
  community.docker.docker_network:name: network_two
    driver_options:com.docker.network.bridge.name: net2

-name: Create a network with custom IPAM config
  community.docker.docker_network:name: network_three
    ipam_config:-subnet: 172.3.27.0/24
        gateway: 172.3.27.2
        iprange: 172.3.27.0/26
        aux_addresses:host1: 172.3.27.3
          host2: 172.3.27.4

-name: Create a network with labels
  community.docker.docker_network:name: network_four
    labels:key1: value1
      key2: value2

-name: Create a network with IPv6 IPAM config
  community.docker.docker_network:name: network_ipv6_one
    enable_ipv6: yes
    ipam_config:-subnet: fdd1:ac8c:0557:7ce1::/64

-name: Create a network with IPv6 and custom IPv4 IPAM config
  community.docker.docker_network:name: network_ipv6_two
    enable_ipv6: yes
    ipam_config:-subnet: 172.4.27.0/24
      -subnet: fdd1:ac8c:0557:7ce2::/64

-name: Delete a network, disconnecting all containers
  community.docker.docker_network:name: network_one
    state: absent
    force: yes

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
la reddiccionario éxito Resultados de la inspección de red para la red afectada.

Autores

  • Ben Keith (@keitwb)
  • Chris Houseknecht (@chouseknecht)
  • Dave Bendit (@DBendit)