A execução de um ping Ansible em um host remoto falha com um erro SSH desconhecido

3

Estou tentando fazer um ping Ansible ansible all -m ping --ask-pass , mas recebo falhas SSH. Como o log de depuração é bastante extenso, reduzi a citação abaixo para onde eu acho que o problema ocorre. Mais cedo no log, eu sou capaz de se conectar ao host remoto (um RHEL5 VM sem cabeça), mas quando realmente executar o "ping", ele falha com o (s) erro (s) abaixo (s).

debug1: Entering interactive session.
debug2: set_control_persist_exit_time: schedule exit in 60 seconds
debug1: multiplexing control connection
debug2: fd 4 setting O_NONBLOCK
debug3: fd 5 is O_NONBLOCK
debug3: fd 5 is O_NONBLOCK
debug1: channel 1: new [mux-control]
debug3: channel_post_mux_listener: new mux channel 1 fd 5
debug3: mux_master_read_cb: channel 1: hello sent
debug2: set_control_persist_exit_time: cancel scheduled exit
debug3: mux_master_read_cb: channel 1 packet type 0x00000001 len 4
debug2: process_mux_master_hello: channel 1 slave version 4
debug2: mux_client_hello_exchange: master version 4
debug3: mux_client_forwards: request forwardings: 0 local, 0 remote
debug3: mux_client_request_session: entering
debug3: mux_client_request_alive: entering
debug3: mux_master_read_cb: channel 1 packet type 0x10000004 len 4
debug2: process_mux_alive_check: channel 1: alive check
debug3: mux_client_request_alive: done pid = 9664
debug3: mux_master_read_cb: channel 1 packet type 0x10000002 len 264
debug2: process_mux_new_session: channel 1: request tty 1, X 0, agent 0, subsys 0, term "xterm", cmd "/bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1392125626.39-45498424175459 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1392125626.39-45498424175459 && echo $HOME/.ansible/tmp/ansible-tmp-1392125626.39-45498424175459'", env 0
debug3: mux_client_request_session: session request sent
mm_receive_fd: no message header
process_mux_new_session: failed to receive fd 0 from slave
debug1: channel 1: mux_rcb failed
debug2: channel 1: zombie
debug2: channel 1: gc: notify user
debug3: mux_master_control_cleanup_cb: entering for channel 1
debug2: channel 1: gc: user detached
debug2: channel 1: zombie
debug2: channel 1: garbage collecting
debug1: channel 1: free: mux-control, nchannels 2
debug3: channel 1: status: The following connections are open:

Eu conectei por SSH convencional à máquina host e verifiquei se o xterm é executado na caixa remota e enquanto está instalado. Ele é executado, mas sai com o seguinte erro:

xterm Xt error: Can't open display:
xterm:  DISPLAY is not set

Meu palpite é que o ssh se conecta, tenta executar os comandos e não consegue porque o xterm explode. Eu fui procurar uma maneira de alterar qual terminal usar, mas não consegui encontrar nada na documentação. Qualquer entrada ou sugestões são muito apreciadas.

    
por Green 11.02.2014 / 15:54

3 respostas

3

No momento em que escrevo, há algo estranho sobre a execução do Ansible no Cygwin no Windows. Não sei o que é, mas não é nada que eu possa consertar. Eu mudei para uma VM Linux e as coisas começaram a funcionar corretamente.

    
por 11.02.2014 / 22:55
1

Eu consegui trabalhar em cygin com cerca de 2 horas de erros esquisitos no googling com a seguinte configuração:

cat /etc/ansible/ansible.cfg
[defaults]
host_key_checking = False

provavelmente ruim para segurança ... também:

 cat /etc/ansible/hosts
 [dbservers]
 56.77.50.151   ansible_ssh_port=22     ansible_ssh_user=ssh_user

verifique:

ansible -vvvv all -a "/bin/echo hello"

Eu tive que ter certeza de que a autenticação de chave pública privada está configurada corretamente

cat id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/authorized_keys
chmod 0600  ~/.ssh/authorized_keys
ls -al ~/.ssh/authorized_keys
rm -fv ~/id_rsa.pub

Eu suspeitaria do ponto de virada para a configuração para grupos e usuários no cygwin : e     chown -v local_pc_user: local_pc_user ~ / .ssh / id_rsa.pub

e finalmente a saída é:

    <56.77.50.151> ESTABLISH CONNECTION FOR USER: ssh_user
    <56.77.50.151> REMOTE_MODULE command /bin/echo hello
    <56.77.50.151> EXEC ['ssh', '-C', '-tt', '-vvv', '-o', 'ControlMaster=auto', '-o', 'ControlPersist=60s', '-o',
    'ControlPath=/home/local_pc_user/.ansible/cp/ansible-ssh-%h-%p-%r',
    '-o', 'StrictHostKeyChecking=no', '-o', 
    'Port=22', '-o', 'KbdInteractiveAuthentication=no',
    '-o', 'PreferredAuthentications=gssapi-with-mic,
    gssapi-keyex,hostbased,publickey', '-o', 'PasswordAuthentication=no', '-o', 'User=ssh_user', '-o', 'ConnectTimeout=10',
    '56.77.50.151', "/bin/sh -c 'mkdir -p
    $HOME/.ansible/tmp/ansible-tmp-1397676665.28-153356552524280 &&
    chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1397676665.28-153356552524280 &&
    echo $HOME/.ansible/tmp/ansible-tmp-1397676665.28-153356552524280'"]
    <56.77.50.151> PUT /tmp/tmprELaVU TO /export/home/ssh_user/.ansible/tmp/ansible-tmp-1397676665.28-153356552524280/command
    <56.77.50.151> EXEC ['ssh', '-C', '-tt', '-vvv', '-o', 'ControlMaster=auto',
    '-o', 'ControlPersist=60s', '-o', 'ControlPath=/home/local_pc_user/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'StrictHostKeyChecking=no', '-o', 'Port=22',
    '-o', 'KbdInteractiveAuthentication=no', '-o', 
    'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', '-o', 'PasswordAuthentication=no', '-o', 'User=ssh_user', '-o', 'ConnectTimeout=10'
    , '56.77.50.151', "/bin/sh -c '/usr/bin/python 
    /export/home/ssh_user/.ansible/tmp/ansible-tmp-1397676665.28-153356552524280/command; 
    rm -rf /export/home/ssh_user/.ansible/tmp/ansible-tmp-1397676665.28-153356552524280/ 
    >/dev/null 2>&1'"]
    56.77.50.151 | success | rc=0 >>
    hello
    
por 16.04.2014 / 21:46
0

Esse comportamento começou após algumas atualizações do Ansible. Em versões mais antigas do Ansible, não tive problemas com isso. Na verdade parece ser xterm que é o problema. Por que o Ansible precisa executar o xterm? Eu classificaria isso como um bug no Ansible.

De qualquer forma, trabalhei em torno do problema no Cygwin adicionando o seguinte a ~/.ssh/config :

ForwardX11 yes
    
por 16.05.2014 / 15:22

Tags