Using Ansible in Cygwin and SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

886 views
Skip to first unread message

Brian Richards

unread,
Mar 4, 2014, 2:39:35 AM3/4/14
to ansible...@googlegroups.com
I am using cygwin to attempt to run Ansible in windows.  We have ansible playbooks that will run fine when executed from a linux box.  However, when I attempt to connect to the servers with Ansible on Windows I get the following error occasionally:
SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

I initially thought there was a configuration issue.  However, I am able to make a successful connection occasionally. I am attaching a log that shows requests I made while trying to figure it out.  

Is there anyway to further diagnose this issue?

This was very frustrating because I tried literally everything I could think of.  I knew the entire time that my public/private key files were correct but I never got a successful ping unless I did the requests in succession.


Couldn't attach file.. so here:

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh


username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping -u username

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh


username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping -u username -k

SSH password:

dns-1.prod.path | success >> {

    "changed": false,

    "ping": "pong"

}

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping -k

SSH password:

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh


username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping -u username -k

SSH password:

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping -u username -k

SSH password:

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping -u username -k

SSH password:

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

 

///when password was entered incorrectly

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping -u username -k

SSH password:

dns-1.prod.path | FAILED >> {

    "failed": true,

    "msg": "",

    "parsed": false

} 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping -u username -k

SSH password:

dns-1.prod.path | success >> {

    "changed": false,

    "ping": "pong"

} 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | success >> {

    "changed": false,

    "ping": "pong"

} 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | success >> {

    "changed": false,

    "ping": "pong"

} 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | success >> {

    "changed": false,

    "ping": "pong"

} 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | success >> {

    "changed": false,

    "ping": "pong"

} 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | success >> {

    "changed": false,

    "ping": "pong"

} 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | success >> {

    "changed": false,

    "ping": "pong"

} 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | success >> {

    "changed": false,

    "ping": "pong"

} 

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

username@server /cygdrive/c/SourceCode/path

$ ansible dns-1.prod.path -m ping

dns-1.prod.path | success >> {

    "changed": false,

    "ping": "pong"

}

 

Michael DeHaan

unread,
Mar 4, 2014, 10:23:23 AM3/4/14
to ansible...@googlegroups.com
Ansible does not support (and won't) support running Windows as the control platform -- so I'm not surprised it doesn't work :)

We may (and likely will) be doing management of Windows nodes in the future, but I don't want to provide dates as this tends to move a bit.

(When we do, we will be building it here)

--Michael


--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
To post to this group, send email to ansible...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/b0ba83be-b853-4b1c-9ae5-b056f6e72561%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

David Carmean

unread,
May 30, 2014, 12:12:22 PM5/30/14
to ansible...@googlegroups.com


This presents a problem for my use case: if I want to use Ansible as my Infrastructure CM/provisioner, and i want my developers to use vagrant boxes configured from the same playbooks as production, for those devs on windows (and for myself), I can't use the vagrant Ansible provisioner?

Packer's ansible provisioner kind of moots the windows/cygwin question by the fact that it only supports running ansible on the VM itself, and copies over the playbooks.  

I suppose that if I start from Packer-built boxen, that will force me to develop a pull-style ansible workflow, which might be somewhat useful anyway.
<p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;l
...
Reply all
Reply to author
Forward
0 new messages