Ansible over SSH on Windows host type progress status needed

Hi Folks,

I’m quite new with Ansible.
I’m projecting a new one automation platform with that in a mixed large enterprise enviroment.
Sadly i found that Ansible not still supporting Windows OS over SSH.
so, I’m asking how 's going with this feature ?

I cannot use WinRM in very large enterprise enviroment due to some lacks of security requirements…

Someone have some status ?

Thank you ,

Stefano Leandro

Not sure what you mean by WinRMs lack of security requirements, if you use RDP in your org then WinRM is no worse than that. In saying that, SSH support for Windows has been added for 2.8 with https://github.com/ansible/ansible/pull/47732. It’s experimental and the interface can change in the future but it would be enough to get you started.

Hi team,

I’m just tryining ansible 2.8 over ssh on windows hosts type but it seems not yet work:
[WARNING]: No python interpreters found for host 192.168.1.146 (tried [‘/usr/bin/python’, ‘python3.7’, ‘python3.6’, ‘python3.5’,
‘python2.7’, ‘python2.6’, ‘/usr/libexec/platform-python’, ‘/usr/bin/python3’, ‘python’])

192.168.1.146 | FAILED! => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/bin/python”
},
“changed”: false,
“module_stderr”: "Exception calling "Create" with "1" argument(s): "At line:4 char:21\r\n+ def _ansiballz_main():\r\n+ ~\r\nAn expression was expected after ‘(’.\r\nAt line:13 char:27\r\n+ except (AttributeError, OSError):\r\n+ ~\r\nMissing argument in parameter list.\r\nAt line:15 char:7\r\n+ if scriptdir is not None:\r\n+ ~\r\nMissing ‘(’ after ‘if’ in if statement.\r\nAt line:22 char:7\r\n+ if sys.version_info < (3,):\r\n+ ~\r\nMissing ‘(’ after ‘if’ in if statement.\r\nAt line:22 char:30\r\n+ if sys.version_info < (3,):\r\n+ ~\r\nMissing expression after ‘,’.\r\nAt line:22 char:25\r\n+ if sys.version_info < (3,):\r\n+ ~\r\nThe ‘<’ operator is reserved for future use.\r\nAt line:24 char:32\r\n+ MOD_DESC = (‘.py’, ‘U’, imp.PY_SOURCE)\r\n+ ~\r\nMissing expression after ‘,’.\r\nAt line:24 char:33\r\n+ MOD_DESC = (‘.py’, ‘U’, imp.PY_SOURCE)\r\n+ ~~~~~~~~~~~~~\r\nUnexpected token ‘imp.PY_SOURCE’ in expression or statement.\r\nAt line:24 char:32\r\n+ MOD_DESC = (‘.py’, ‘U’, imp.PY_SOURCE)\r\n+ ~\r\nMissing closing ‘)’ in expression.\r\nAt line:24 char:46\r\n+ MOD_DESC = (‘.py’, ‘U’, imp.PY_SOURCE)\r\n+ ~\r\nUnexpected token ‘)’ in expression or statement.\r\nNot all parse errors were reported. Correct the reported errors and try again."\r\nAt line:6 char:1\r\n+ $exec_wrapper = [ScriptBlock]::Create($split_parts[0])\r\n+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n + CategoryInfo : NotSpecified: (:slight_smile: , MethodInvocationException\r\n + FullyQualifiedErrorId : ParseException\r\n \r\nThe expression after ‘&’ in a pipeline element produced an object that was not valid. It must result in a command \r\nname, a script block, or a CommandInfo object.\r\nAt line:7 char:2\r\n+ &$exec_wrapper\r\n+ ~~~~~~~~~~~~~\r\n + CategoryInfo : InvalidOperation: (:slight_smile: , RuntimeException\r\n + FullyQualifiedErrorId : BadExpression\r\n ",
“module_stdout”: “”,
“msg”: “MODULE FAILURE\nSee stdout/stderr for the exact error”,
“rc”: 1
}

This is the statement :
ansible winservers -i win_inventory -m ping

This is my inventory win_inventory:
#ansible_connection=ssh

Set either cmd or powershell not both

#ansible_shell_type=cmd
#ansible_shell_type=powershell

[winservers]
192.168.1.146
[winservers:vars]
ansible_ssh_user=administrator
ansible_ssh_private_key_file=/opt/REPO-KEYS/sleandro-key-repo/KEY/sleandro.pub
ansible_shell_type=cmd
ansible_connection=ssh

I installed the sshd for windows via chocolatey

The version of sshd is OpenSSH_for_Windows_7.9p1, LibreSSL 2.6.5

What’s wrong? or i 'm missing something ?

Thank you ,

Stefano

These question are better suited towards the Ansible Project mailing list at https://groups.google.com/forum/#!forum/ansible-project. Ansible Development is for development questions inside Ansible, such as modules, plugins and so on and not general help.

Using ssh does not mean you can start using Python modules like ping, you still need to use the Windows equivalent modules which are written in PowerShell (win_ping).

Hi ,
thank you for your time .

It was my fault .
It works :

[root@ORKy ansible]# ansible winservers -i win_invetory -m win_ping
192.168.1.146 | SUCCESS => {
“changed”: false,
“ping”: “pong”
}
[root@ORKy ansible]#

Cheers ,

Stefano