Após algumas investigações, o problema acabou relacionado ao encaminhamento de agentes.
A adição de -o ForwardAgent = yes
à configuração ssh_args
em /etc/ansible/ansible.cfg
foi suficiente.
A seguinte tarefa funciona bem quando executada diretamente da minha máquina. Quando eu o executo de uma máquina remota através do SSH, ele fica pendurado para sempre.
Esta é a tarefa:
- name: deploy public directory
synchronize: src="{{ my_root_path }}/.deploy/office/public/" dest="{{ my_root_path}}/office/public/" compress=no checksum=yes delete=yes recursive=yes times=yes links=yes archive=no rsync_opts=--no-motd,--exclude=.gitignore
delegate_to: "{{ inventory_hostname }}"
Esta é a saída antes de ser interrompida:
<88.81.184.149> ESTABLISH CONNECTION FOR USER: root
<88.81.184.149> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/root/.ansible/cp/ansible-ssh-%h-%p-%r" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 88.81.184.149 /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1440505364.9-19277754718304 && echo $HOME/.ansible/tmp/ansible-tmp-1440505364.9-19277754718304'
<88.81.184.149> PUT /tmp/tmpr44yYm TO /root/.ansible/tmp/ansible-tmp-1440505364.9-19277754718304/synchronize
<88.81.184.149> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/root/.ansible/cp/ansible-ssh-%h-%p-%r" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 88.81.184.149 /bin/sh -c 'LANG=C LC_CTYPE=C /usr/bin/python /root/.ansible/tmp/ansible-tmp-1440505364.9-19277754718304/synchronize; rm -rf /root/.ansible/tmp/ansible-tmp-1440505364.9-19277754718304/ >/dev/null 2>&1'
Alguma idéia do que pode estar errado?
Após algumas investigações, o problema acabou relacionado ao encaminhamento de agentes.
A adição de -o ForwardAgent = yes
à configuração ssh_args
em /etc/ansible/ansible.cfg
foi suficiente.