playbook hostvars example ansible

hostvars - ansible playbook example



Ansible no pudo transferir el archivo a/comando (5)

Sin tocar /etc/ansible/ansible.cfg

Si solo se ve afectado un host, esto puede remediarse por host en el archivo de hosts :

alias ansible_host=192.168.1.102 ansible_ssh_transfer_method=scp

Esta solución requiere una versión ansible 2.3 o superior.

[Source]

Recientemente he estado usando ansible para una amplia variedad de automatización. Sin embargo, durante las pruebas para el reinicio automático de tomcat6 en cajas de servidor web específicas. Me encontré con este nuevo error que parece que no puedo solucionar.

FAILED => failed to transfer file to /command

En cuanto a la documentación, se debe a que sftp-server no está en sshd_config, sin embargo, está allí.

A continuación se muestra el comando que estoy ejecutando para mis servidores de servidor web.

ansible all -a "/usr/bin/sudo /etc/init.d/tomcat6 restart" -u user --ask-pass --sudo --ask-sudo-pass

Hay una carpeta oculta .ansible en cada una de las cajas, así que sé que se está creando, pero no está ejecutando el comando.

Ejecutar -vvvv me da esto después de:

EXEC [''sshpass'', ''-d10'', ''ssh'', ''-C'', ''-tt'', ''-vvv'', ''-o'', ''ControlMaster=auto'', ''-o'', ''ControlPersist=60s'', ''-o'', ''ControlPath=/home/vagrant/.ansible/cp/ansible-ssh-%h-%p-%r'', ''-o'', ''GSSAPIAuthentication=no'', ''-o'', ''PubkeyAuthentication=no'', ''-o'', ''User=user'', ''-o'', ''ConnectTimeout=10'', ''10.10.10.103'', "/bin/sh -c ''mkdir -p $HOME/.ansible/tmp/ansible-tmp-1400791384.19-262170576359689 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1400791384.19-262170576359689 && echo $HOME/.ansible/tmp/ansible-tmp-1400791384.19-262170576359689''"]

entonces

10.10.10.103 | FAILED => failed to transfer file to /home/user/.ansible/tmp/ansible-tmp-1400791384.19-262170576359689/command

Cualquier ayuda en este tema es muy apreciada.

Gracias,

Editar:

Para aumentar la googleabilidad, aquí hay otra manifestación del error que corrige la respuesta elegida.

Al ejecutar el comando ansible-playbook -i inventory hello_world.yml esta advertencia para cada host.

[WARNING]: sftp transfer mechanism failed on [host.example.com]. Use ANSIBLE_DEBUG=1 to see detailed information

Y cuando vuelva a ejecutar el comando como ANSIBLE_DEBUG=1 ansible-playbook -i inventory hello_world.yml la única información adicional que obtiene es:

>>>sftp> put /var/folders/nc/htqkfk6j6h70hlxrr43rm4h00000gn/T/tmpxEWCe5 /home/ubuntu/.ansible/tmp/ansible-tmp-1487430536.22-28138635532013/command.py


¿Tiene el subsistema sftp habilitado en sshd en el servidor remoto? Puede verificarlo en / etc / sshd / sshd_config, el nombre del archivo de configuración depende de su distribución ... de todos modos, busque allí:

Subsystem sftp /usr/lib/ssh/sftp-server

Si esta línea está comentada, el sftp está deshabilitado. Para solucionarlo, puede habilitar sftp o cambiar la configuración de Ansible. Prefiero el cambio de configuración de Ansible, eche un vistazo a ansible.cfg y añada / cambie:

[ssh_connection] scp_if_ssh=True


Esta solución funcionará:

Paso 1:

En el archivo host (/etc/ansible/hosts) use la ipaddress "[email protected]" como "[email protected]" lugar de "192.168.1.102" .

Paso 2:

Descomente la propiedad en el archivo "/etc/ansible/ansible.cfg" .

scp_if_ssh=True


Puedes probar esta solución:

rm -rf ~/.ansible

Y entonces

ansible-galaxy install cbrunnkvist.ansistrano-symfony-deploy --force

Después de intentar otra vez

ansible-playbook -i etc/deploy/config/inventory.yml etc/deploy/deploy.yml


Recientemente recibí un mensaje como este por una razón completamente diferente. Recibí un texto extraviado que fue el resultado de un comando de cd - que tenía en mi archivo ~/.bashrc . Solucioné este problema filtrando su salida de esta manera:

mi ~ / .bashrc

... cd ~/ansible/hacking/ > /dev/null 2>&1 && . env-setup -q && cd - > /dev/null 2>&1 ...

Sin esas redirecciones de los comandos de cd a /dev/null estaba recibiendo este mensaje.

TASK [setup] ******************************************************************* ok: [app02] ok: [app03] fatal: [app01]: FAILED! => {"failed": true, "msg": "failed to transfer file to /home/admin/.ansible/tmp/ansible-tmp-1474747432.93-129438354708729/setup:/n/n/home/admin/n"}

mi ansible.cfg

Los otros detalles interesantes de mi situación son que ya estoy usando esto en mi archivo ansible.cfg :

[ssh_connection] scp_if_ssh=True

Y el servidor en la lista con el problema, app01, es el mismo servidor desde el que estoy ejecutando el libro de jugadas de Ansible.

El bit de texto al final de mi mensaje de error:

74747432.93-129438354708729 / setup: / n / n / home / admin / n "}

es lo que me dio la pista en mi problema. Esa es la salida de cd ... cuando se ejecuta durante el inicio de sesión cuando se procesa mi archivo ~/.bashrc .