tipografia regular medium font descargar dafont ubuntu deployment ansible ansible-playbook provisioning

regular - ubuntu medium free



Cómo detectar por qué el libro de jugadas de Ansible se cuelga durante la ejecución (5)

Algunas de las tareas que escribí comienzan y nunca terminan. Ansible no proporciona ningún error o registro que explique esto, incluso con la opción -vvvv. La guía de juegos simplemente se cuelga y pasar horas no cambia nada.

Cuando intento ejecutar mis tareas manualmente (ingresando comandos a través de SSH) todo está bien.

Ejemplo de tarea que se cuelga:

- name: apt upgrade shell: apt-get upgrade

¿Hay alguna manera de ver stdout y stderr? Lo intenté:

- name: apt upgrade shell: apt-get upgrade register: hello - debug: msg="{{ hello.stdout }}" - debug: msg="{{ hello.stderr }}"

pero nada cambió.

Necesito permisos y paso la contraseña de sudo correcta, otras tareas que requieren que sudo se ejecute correctamente.


Eliminar la contraseña de mi clave SSH me solucionó, por ejemplo:

ssh-keygen -p


Estaba teniendo los mismos problemas con un libro de jugadas.

Funcionó perfectamente hasta que se detuvo un punto, así que agregué los parámetros async y poll para evitar este comportamiento.

- name: update packages full into each server apt: upgrade=full ignore_errors: True async: 60 poll: 60

¡Y funcionó como un encanto! Realmente no sé qué pasó pero parece que ahora Ansible toma en cuenta lo que está pasando y ¡ya no se congela!

Espero eso ayude


La causa más probable de su problema sería la conexión SSH. Cuando una tarea requiere un tiempo de ejecución largo SSH timeouts. Me enfrenté a ese problema una vez, para superar el tiempo de espera de SSH, crear un ansible.cfg en el directorio actual desde el que está ejecutando Ansible, agregue lo siguiente:

[ssh_connection] ssh_args = -o ServerAliveInterval=n

Donde n es el ServerAliveInterval (segundos) que usamos mientras nos conectamos al servidor a través de SSH. Establecerlo entre 1-255. Esto hará que el cliente ssh envíe paquetes nulos al servidor cada n segundos para evitar el tiempo de espera de la conexión.


Tuve los mismos problemas y después de juguetear un poco encontré que el problema estaba en el paso de reunir datos. Aquí hay algunos consejos para resolver mejor cualquier problema similar.

Inhabilite recopilación de hechos en su libro de jugadas:

--- - hosts: myservers gather_facts: no ..

Vuelve a ejecutar el libro de jugadas. Si funciona, significa que el culpable no está en el SSH sino en el guión que recopila los hechos. Podemos solucionar ese problema con bastante facilidad.

  1. SSH a la caja remota
  2. Encuentra el archivo de setup en algún lugar de la carpeta .ansible .
  3. Ejecútelo con ./setup o python -B setup

Si se bloquea, entonces sabemos que el problema está aquí con seguridad. Para encontrar exactamente qué hace que se cuelgue, simplemente puede abrir el archivo con un editor y agregar instrucciones de print principalmente en el método de datos populate() . Vuelva a ejecutar el script y vea cuánto tiempo dura.

Para mí, el problema parecía ser tratar de resolver el nombre de host en la línea self.facts[''fqdn''] = socket.getfqdn() y con un poco de Google resultó ser un problema para resolver el nombre de host remoto .


Un trabajo totalmente diferente para mí. Lo tenía de Debian Jessie ( Linux PwC-Deb64 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02) x86_64 GNU/Linux ) a otra imagen de Debian que era tratando de construir en AWS.

Después de que muchas de las sugerencias aquí no funcionaron para mí, sospeché sobre la conexión "compartida" de SSH. Fui a mi ansible.cfg y encontré las líneas ssh_args y configuré ControlMaster=no . Esto ahora puede funcionar lentamente porque he perdido el aumento de rendimiento SSH que se supone que debe proporcionar, pero parece que hay alguna interacción entre esto y apt-get que está causando el problema.

Su ansible.cfg podría estar en el directorio desde el que ejecuta ansible , o en /etc/ansible . Si es el último, ¡puede tomar una copia en un directorio local antes de comenzar a cambiarlo!