Saltar al contenido

Ejecute el comando dentro del contenedor Docker usando Ansible

Este grupo redactor ha estado mucho tiempo buscando para dar solución a tus preguntas, te dejamos la solución por esto esperamos serte de mucha apoyo.

Solución:

Después de discutir con algunos desarrolladores muy útiles sobre el proyecto ansible github, una mejor manera de hacer esto es así:

- name: add container to inventory
  add_host:
    name: [container-name]
    ansible_connection: docker
  changed_when: false

- name: run command in container
  delegate_to: [container-name]
  raw: bash

Si tiene Python instalado en su imagen, puede usar el módulo de comando o cualquier otro módulo en lugar de raw.

Si desea hacer esto en un host docker remoto, agregue:

ansible_docker_extra_args: "-H=tcp://[docker-host]:[api port]"

al bloque add_host.

Consulte la documentación de Ansible para ver un ejemplo más completo.

Debería poder ejecutar un script (con su secuencia de comando en él) con docker exec:

docker exec container-name bash -l -c /path/to/script > /path/to/log

(Ver también “¿Por qué tengo que usar bash -l -c dentro de mi contenedor?”)

  • /path/to/script debe ser accesible por su proceso de Ansible.
  • /path/to/log es una ruta dentro del contenedor, que podría compartirse en un volumen.

Puede ejecutar comandos dentro de los contenedores docker usando el módulo de comando. Por ejemplo, este código se ejecutará echo "Hello remote machine" dentro de mi_contenedor en la máquina remota:

   tasks:
        - name: Execute commands in docker container
          command: docker exec -it my_container bash -c 'echo "Hello remote machine"'

Para ejecutar el mismo comando dentro de la máquina local, solo use el local_action bandera:

   tasks:
        - name: Execute commands in docker container
          local_action: command docker exec -it my_container bash -c 'echo "Hello local machine"'

Te mostramos comentarios y valoraciones

Recuerda que puedes compartir esta noticia si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *