Ubuntu Controller with Windows Host

489 views
Skip to first unread message

Avinash Singh

unread,
Aug 21, 2014, 2:29:23 PM8/21/14
to ansible...@googlegroups.com
Hi,

I have installed ansible on my linux controller, however I am unable to win_ping my windows host machine.
The controller and host are virtual machines hosted on my physical machine.

I am able to ping each machine in both directions from cmd prompt and the terminal, to verify that the machines can see each other.

I have followed all the steps from here :http://docs.ansible.com/intro_windows.html

When running the command below I get a connection refused.
ansible windows -i /etc/anisible/hosts -m win_ping --ask-vault-pass -vvvv
I have also tried using a playbook. However I get some cows :) and connection could be established.

   ansible-playbook site.yml

with the following site.xml contents:
---
-host: windows
 remote_user: Administrator
 vars:
ansible_ssh_user: Administrator
ansible_ssh_pass: test
ansible_ssh_port: 5986
ansible_connection: winrm
tasks:
  - action: win_ping
Is there something that I am missing?

Paul Durivage

unread,
Aug 21, 2014, 3:01:37 PM8/21/14
to ansible...@googlegroups.com
You said you're getting a connection refused, so check the firewall and winrm settings on the Windows machine.  

There's an example script (https://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1) that takes care of WinRM making sure the box allows remote powershell exec, among other things.  Likely you're missing a step preparing the Windows machine to accept remote winrm connections.





--
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/3f8137c9-082d-4591-be0f-9889847b78b5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Avinash Singh

unread,
Aug 22, 2014, 3:04:50 AM8/22/14
to ansible...@googlegroups.com
I have disabled the firewall.

Output from Host machine when running remoting script:
VERBOSE: Verifying WS-MAN
VERBOSE: PS remoting is already active and running
VERBOSE: SSL-based remoting already active
VERBOSE: basic auth already enabled
Ok.


VERBOSE: PS Remoting successfully setup for AnsibleEnter code here...

 This is the error on the controller:

<10.1.11.40> ESTABLISH CONNECTION FOR USER: root
<10.1.11.40> REMOTE_MODULE win_ping
<10.1.11.40> EXEC ['ssh', '-C', '-tt', '-vvv', '-o', 'ControlMaster=auto', '-o', 'ControlPersist=60s', '-o', 'ControlPath=/home/avinashs/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'Port=22', '-o', 'KbdInteractiveAuthentication=no', '-o', 'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', '-o', 'PasswordAuthentication=no', '-o', 'ConnectTimeout=10', '10.1.11.40', "/bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1408690690.7-187551343997386 && echo $HOME/.ansible/tmp/ansible-tmp-1408690690.7-187551343997386'"]
EXEC previous known host file not found for 10.1.11.40
10.1.11.40 | FAILED => SSH encountered an unknown error. The output was:
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: auto-mux: Trying existing master
debug1: Control socket "/home/avinashs/.ansible/cp/ansible-ssh-10.1.11.40-22-root" does not exist
debug2: ssh_connect: needpriv 0
debug1: Connecting to 10.1.11.40 [10.1.11.40] port 22.
debug2: fd 3 setting O_NONBLOCK
debug1: connect to address 10.1.11.40 port 22: Connection refused
ssh: connect to host 10.1.11.40 port 22: Connection refused

Avinash Singh

unread,
Aug 22, 2014, 3:33:02 AM8/22/14
to ansible...@googlegroups.com
Heres a log of my latest error:

<10.1.11.40> ESTABLISH WINRM CONNECTION FOR USER: Administrator on PORT 5986 TO 10.1.11.40
<10.1.11.40> WINRM CONNECT: transport=plaintext endpoint=https://10.1.11.40:5986/wsman
10.1.11.40 | FAILED => Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/ansible-1.8-py2.7.egg/ansible/runner/__init__.py", line 563, in _executor
    exec_rc = self._executor_internal(host, new_stdin)
  File "/usr/local/lib/python2.7/dist-packages/ansible-1.8-py2.7.egg/ansible/runner/__init__.py", line 672, in _executor_internal
    return self._executor_internal_inner(host, self.module_name, self.module_args, inject, port, complex_args=complex_args)
  File "/usr/local/lib/python2.7/dist-packages/ansible-1.8-py2.7.egg/ansible/runner/__init__.py", line 843, in _executor_internal_inner
    conn = self.connector.connect(actual_host, actual_port, actual_user, actual_pass, actual_transport, actual_private_key_file)
  File "/usr/local/lib/python2.7/dist-packages/ansible-1.8-py2.7.egg/ansible/runner/connection.py", line 44, in connect
    self.active = conn.connect()
  File "/usr/local/lib/python2.7/dist-packages/ansible-1.8-py2.7.egg/ansible/runner/connection_plugins/winrm.py", line 132, in connect
    self.protocol = self._winrm_connect()
  File "/usr/local/lib/python2.7/dist-packages/ansible-1.8-py2.7.egg/ansible/runner/connection_plugins/winrm.py", line 90, in _winrm_connect
    err_msg = str(exc.args[0])
IndexError: tuple index out of range

Michael DeHaan

unread,
Aug 22, 2014, 7:07:37 AM8/22/14
to ansible...@googlegroups.com
When you say "remote windows machine", what version of Windows, what is the version of Ansible (ansible --version exact output), and did you run the setup script above or set it up manually?

Thanks!




Avinash Singh

unread,
Aug 22, 2014, 8:42:19 AM8/22/14
to ansible...@googlegroups.com
Windows 2012 Server.
Ansible 1.8

I have run the setup script.

Avinash Singh

unread,
Aug 22, 2014, 8:56:03 AM8/22/14
to ansible...@googlegroups.com
I can remote into into my windows host machine from another windows machine using 
Invoke-Command -ComputerName AnsibleHost1 -ScriptBlock { Get-childitem c:\} -credential $cred

I have also tried(not using https):
 > winrm identify -r:http://10.1.11.40:5985/wsman -auth:basic -u:administrator -p:password -encoding:utf-8
IdentifyResponse
    ProductVendor = Microsoft Corporation
    ProductVersion = OS: 6.2.9200 SP: 0.0 Stack: 3.0
    SecurityProfiles

Im think it has something to do with pywinrm, because when i trying running it on my linux machine through python i get the following error:
 >>> import winrm
>>> s = winrm.Session('http://10.1.11.40:5985/wsman', auth=('administrator', 'password'))
>>> r = s.run_cmd('ipconfig', ['/all'])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/winrm/__init__.py", line 26, in run_cmd
    shell_id = self.protocol.open_shell()
  File "/usr/local/lib/python2.7/dist-packages/winrm/protocol.py", line 103, in open_shell
    rs = self.send_message(xmltodict.unparse(rq))
  File "/usr/local/lib/python2.7/dist-packages/winrm/protocol.py", line 173, in send_message
    return self.transport.send_message(message)
  File "/usr/local/lib/python2.7/dist-packages/winrm/transport.py", line 102, in send_message
    raise WinRMTransportError('http', ex.reason)
winrm.exceptions.WinRMTransportError: 500 WinRMTransport. [Errno 22] Invalid argument

john zenou

unread,
Aug 23, 2014, 4:10:29 PM8/23/14
to ansible...@googlegroups.com
Hi all

I have exactly the same problem and I agree too that all points to an pywinrm issue.
Does anyone know what is causing this and how to solve it ?

Server controle : Ansible 1.7 running on Ubuntu 12.04
Node : Windows 2008 r2

Michael DeHaan

unread,
Aug 25, 2014, 6:29:15 PM8/25/14
to ansible...@googlegroups.com
Per another thread on this list, downgrading winrm is the temporary answer.    The issue needs to be brought up with wirm upstream.

See the thread entitled "[Ansible to Windows] IndexErrortuple index out of range"



--
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.

Chris Church

unread,
Aug 26, 2014, 8:23:30 AM8/26/14
to ansible...@googlegroups.com
The latest pywinrm (as of https://github.com/diyan/pywinrm/commit/1bb5ee32a559624f9e2c08ba3b1b2f4bdf0d8bcb) has issues when using the winrm.Session class and the URL contains an IP address, so I wouldn't expect your example above to work at the moment.

As mentioned in the other ansible-project thread, the IndexError should be fixed as of https://github.com/ansible/ansible/commit/07f12539eee2faac5fe831cd31f1f0a5d3e7e661 (which was committed Friday afternoon EDT).

Trying to use win_ping (or any other windows module) from a playbook was also broken until my commit earlier this evening (https://github.com/ansible/ansible/commit/57dee4545b3c34d1e66943def8d5e45ee95d66bd) -- That bug would've given you the error "Processing -File 'C' failed because the file does not have a '.ps1' extension. Specify a valid Windows PowerShell script file name, and then try again."

Let me know if you're still having issues using the latest ansible@devel and pywinrm@master.


On Sat, Aug 23, 2014 at 4:10 PM, john zenou <zeno...@gmail.com> wrote:
--
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.
Reply all
Reply to author
Forward
0 new messages