Connection refused

I’m having trouble getting win_ping to work with or without SSL. Here are my details…

CentOS Linux release 7.1.1503 (Core)

ansible 1.8 (devel 57d2622c8c) last updated 2014/10/17 18:19:13 (GMT -500)

using pywinrm-0.0.3-py2.7

I started winrm on the remote node using this script from Hindenes/Church

ansible_ssh_user: ansible

ansivle_ssh_pass: ansible123

ansible_ssh_port: 5986

ansible_connection: winrm

[windows]

ComputerName

[ansmgr@dhcp1-60-20 ansible]$ ansible windows -m win_ping -vvvv

<www.example.com> ESTABLISH CONNECTION FOR USER: ansmgr

<www.example.com> REMOTE_MODULE win_ping

<www.example.com> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o ControlPersist=60s -o ControlPath=/home/ansmgr/.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 www.example.com /bin/sh -c ‘mkdir -p $HOME/.ansible/tmp/ansible-tmp-1427994666.99-36837830948182 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1427994666.99-36837830948182 && echo $HOME/.ansible/tmp/ansible-tmp-1427994666.99-36837830948182’

www.example.com | FAILED => SSH encountered an unknown error. The output was:

OpenSSH_6.6.1, OpenSSL 1.0.1e-fips 11 Feb 2013

debug1: Reading configuration data /etc/ssh/ssh_config

debug1: /etc/ssh/ssh_config line 56: Applying options for *

debug1: auto-mux: Trying existing master

debug1: Control socket “/home/ansmgr/.ansible/cp/ansible-ssh-www.example.com-22-ansmgr” does not exist

debug2: ssh_connect: needpriv 0

debug1: Connecting to www.example.com [123.123.123.123] port 22.

debug2: fd 3 setting O_NONBLOCK

debug1: connect to address 123.123.123.123 port 22: Connection refused

ssh: connect to host www.example.com port 22: Connection refused

[windows]

Thanks for the tip. In my case it would be simpler to keep everything in the hosts file.

But actually I did have the ansible_ssh vars in the etc/ansible/group_vars/windows.yml

It looks like you are making an ssh connection so it appears your vars are not getting picked up.
Since your config has a user ‘ansible’ but the logging output shows you are connecting as ‘ansmgr’, and clearly connecting to port 22 not 5986 I am wondering if you are picking up the inventory / hosts file that you expect?

Jon

Actually I’m trying to connect to a Windows machine so I can’t use ssh. In that case are the contents of my windows.yml file correct for connecting to a windows machine. I’ve tried using port 5986 and 5985 (using a cert and ssl) but neither works.

windows.yml file contains…

ansible_ssh_user: ansmgr

ansivle_ssh_pass: ansible123

ansible_ssh_port: 5986

ansible_connection: winrm

Also someone told me that the user and password in the windows.yml file must match the username and password of the active account (logged in) on the windows machine. Is this correct?

I was also told that the active account must be a local account not a domain account. Is this correct?

Your vars look correct but the logging output from ansible-playbook when you run it appeared to show it was attempting to use SSH to connect, which as you say isn’t going to work against a windows machine.

Is www.example.com actually one of the machines listed as belonging to your [windows] group? If not the default connection, ssh, will be attempted.

The user does not need to be logged in on the windows machine, but the user has to exist (and ansible needs to know the correct password of course).

Since you are running ansible 1.8 then you will need to connect as a local user on the windows machine. If you are able to use 1.9 then you can connect using a domain user if you have pykerberos installed. You will need to specify the username like
user@FULL.DOMAIN.NAME in order to use a domain user.

Hope that helps,

Jon

Looks like you might be hitting the same thing as described here:

https://groups.google.com/forum/#!topic/ansible-project/otFPejRWX-Y

maybe your group_vars/windows.yml doesn’t start with

It’s fixed now. Here’s my windows.yml file contents

ansible_ssh_user: ansible
ansivle_ssh_pass: ansible123
ansible_ssh_port: 5986
ansible_connection: winrm

It seems that the 3rd line of my windows.yml file “ansible_ssh_port: 5986” was not doing it’s job because I appended my computer name with the port number and everything worked fine. So I’ve deleted the 3rd line of my windows.yml file and now my host file is

[windows]
ComputerName:5986