Por fin después de tanto batallar ya hallamos la respuesta de este inconveniente que ciertos de nuestros lectores de nuestro sitio web han tenido. Si tienes algo más que compartir no dejes de compartir tu información.
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 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.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 |
|
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 |
|
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 |
|
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 |
|
Habilite la red IPv6. | |
fuerzabooleano |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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
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
-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)
Te mostramos reseñas y calificaciones
Si piensas que ha sido útil nuestro artículo, sería de mucha ayuda si lo compartes con otros seniors y nos ayudes a difundir nuestro contenido.