I can’t seem to get anything to work over winrm. I keep getting this error no matter what I try. I have run the setup scripts.
[ansible-stuff]$ ansible -i inventory windows7-ansible4 -m setup -vvvv
ESTABLISH WINRM CONNECTION FOR USER: stew on PORT 5986 TO windows7-ansible4
WINRM CONNECT: transport=plaintext endpoint=https://windows7-ansible4:5986/wsman
REMOTE_MODULE setup
EXEC (New-Item -Type Directory -Path $env:temp -Name “ansible-tmp-1433087659.28-74445365416872”).FullName | Write-Host -Separator ‘’;
WINRM EXEC ‘PowerShell’ [‘-NoProfile’, ‘-NonInteractive’, ‘-EncodedCommand’, ‘KABOAGUAdwAtAEkAdABlAG0AIAAtAFQAeQBwAGUAIABEAGkAcgBlAGMAdABvAHIAeQAgAC0AUABhAHQAaAAgACQAZQBuAHYAOgB0AGUAbQBwACAALQBOAGEAbQBlACAAIgBhAG4AcwBpAGIAbABlAC0AdABtAHAALQAxADQAMwAzADAAOAA3ADYANQA5AC4AMgA4AC0ANwA0ADQANAA1ADMANgA1ADQAMQA2ADgANwAyACIAKQAuAEYAdQBsAGwATgBhAG0AZQAgAHwAIABXAHIAaQB0AGUALQBIAG8AcwB0ACAALQBTAGUAcABhAHIAYQB0AG8AcgAgACcAJwA7AA==’]
Traceback (most recent call last):
File “/usr/lib/python2.6/site-packages/ansible/runner/connection_plugins/winrm.py”, line 161, in exec_command
result = self._winrm_exec(cmd_parts[0], cmd_parts[1:], from_exec=True)
File “/usr/lib/python2.6/site-packages/ansible/runner/connection_plugins/winrm.py”, line 122, in _winrm_exec
self.shell_id = self.protocol.open_shell()
File “/usr/lib/python2.6/site-packages/winrm/protocol.py”, line 121, in open_shell
root = ET.fromstring(rs)
File “/usr/lib64/python2.6/xml/etree/ElementTree.py”, line 963, in XML
parser.feed(text)
File “/usr/lib64/python2.6/xml/etree/ElementTree.py”, line 1245, in feed
self._parser.Parse(data, 0)
File “/usr/lib64/python2.6/xml/etree/ElementTree.py”, line 1188, in _end
return self._target.end(self._fixname(tag))
File “/usr/lib64/python2.6/xml/etree/ElementTree.py”, line 1096, in end
self._last.tag, tag)
AssertionError: end tag mismatch (expected ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒羸 , got ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒n▒▒2B▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⸾)
windows7-ansible4 | FAILED => failed to exec cmd PowerShell -NoProfile -NonInteractive -EncodedCommand KABOAGUAdwAtAEkAdABlAG0AIAAtAFQAeQBwAGUAIABEAGkAcgBlAGMAdABvAHIAeQAgAC0AUABhAHQAaAAgACQAZQBuAHYAOgB0AGUAbQBwACAALQBOAGEAbQBlACAAIgBhAG4AcwBpAGIAbABlAC0AdABtAHAALQAxADQAMwAzADAAOAA3ADYANQA5AC4AMgA4AC0ANwA0ADQANAA1ADMANgA1ADQAMQA2ADgANwAyACIAKQAuAEYAdQBsAGwATgBhAG0AZQAgAHwAIABXAHIAaQB0AGUALQBIAG8AcwB0ACAALQBTAGUAcABhAHIAYQB0AG8AcgAgACcAJwA7AA==
Hi, that is a very odd error, as it’s failing to parse XML returned and appears to be connecting to the https port but is using the http protocol (thus the binary output) at the end. Can you share your python winrm version and any other relevant details in regards to how you have your inventory configured?
You are right. I did not see that.
pywinrm (0.0.3)
CentOS release 6.6
ansible-1.9.1-1.el6.noarch
Python 2.7.2
group_vars
ansible_ssh_user: stew
ansible_ssh_pass: ********
ansible_ssh_port: 5986
ansible_connection: winrm
I tried changing the port to 5985. I do notice that it uses http now, but with the same results.
[zenoss@zenoss-dev2 ansible-stuff]$ ansible -i inventory windows7-ansible4 -m setup -vvvv
ESTABLISH WINRM CONNECTION FOR USER: stew on PORT 5985 TO windows7-ansible4
WINRM CONNECT: transport=plaintext endpoint=http://windows7-ansible4:5985/wsman
REMOTE_MODULE setup
EXEC (New-Item -Type Directory -Path $env:temp -Name “ansible-tmp-1433211528.68-218620442194755”).FullName | Write-Host -Separator ‘’;
WINRM EXEC ‘PowerShell’ [‘-NoProfile’, ‘-NonInteractive’, ‘-EncodedCommand’, ‘KABOAGUAdwAtAEkAdABlAG0AIAAtAFQAeQBwAGUAIABEAGkAcgBlAGMAdABvAHIAeQAgAC0AUABhAHQAaAAgACQAZQBuAHYAOgB0AGUAbQBwACAALQBOAGEAbQBlACAAIgBhAG4AcwBpAGIAbABlAC0AdABtAHAALQAxADQAMwAzADIAMQAxADUAMgA4AC4ANgA4AC0AMgAxADgANgAyADAANAA0ADIAMQA5ADQANwA1ADUAIgApAC4ARgB1AGwAbABOAGEAbQBlACAAfAAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAtAFMAZQBwAGEAcgBhAHQAbwByACAAJwAnADsA’]
Traceback (most recent call last):
File “/usr/lib/python2.6/site-packages/ansible/runner/connection_plugins/winrm.py”, line 161, in exec_command
result = self._winrm_exec(cmd_parts[0], cmd_parts[1:], from_exec=True)
File “/usr/lib/python2.6/site-packages/ansible/runner/connection_plugins/winrm.py”, line 122, in _winrm_exec
self.shell_id = self.protocol.open_shell()
File “/usr/lib/python2.6/site-packages/winrm/protocol.py”, line 121, in open_shell
root = ET.fromstring(rs)
File “/usr/lib64/python2.6/xml/etree/ElementTree.py”, line 963, in XML
parser.feed(text)
File “/usr/lib64/python2.6/xml/etree/ElementTree.py”, line 1245, in feed
self._parser.Parse(data, 0)
File “/usr/lib64/python2.6/xml/etree/ElementTree.py”, line 1188, in _end
return self._target.end(self._fixname(tag))
File “/usr/lib64/python2.6/xml/etree/ElementTree.py”, line 1096, in end
self._last.tag, tag)
AssertionError: end tag mismatch (expected ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒羵▒▒ ▒, got ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒n▒▒2B▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⸾)
windows7-ansible4 | FAILED => failed to exec cmd PowerShell -NoProfile -NonInteractive -EncodedCommand KABOAGUAdwAtAEkAdABlAG0AIAAtAFQAeQBwAGUAIABEAGkAcgBlAGMAdABvAHIAeQAgAC0AUABhAHQAaAAgACQAZQBuAHYAOgB0AGUAbQBwACAALQBOAGEAbQBlACAAIgBhAG4AcwBpAGIAbABlAC0AdABtAHAALQAxADQAMwAzADIAMQAxADUAMgA4AC4ANgA4AC0AMgAxADgANgAyADAANAA0ADIAMQA5ADQANwA1ADUAIgApAC4ARgB1AGwAbABOAGEAbQBlACAAfAAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAtAFMAZQBwAGEAcgBhAHQAbwByACAAJwAnADsA
Anything else I can offer that would help here? I just set up Windows Server 2008 R2 and get the same error on that as well.
Is your server 2008 r2 machine fully up to date with Windows updates. There is a known bug in wmf 3 - see the blue note box in the windows system prep section of this page in the documentation http://docs.ansible.com/intro_windows.html#windows-system-prep
Hope that helps.
Jon
See http://docs.ansible.com/intro_windows.html#windows-system-prep
Your server 2008 r2 machine may need to be patched due to a bug in wmf 3
Jon
Maybe that’s something we should check on in the setup script of the node is a 2008r2 box?
The first system I tried was Windows 7 and close to up-to-date. W2K8 R2 was no where near. I’ll bring them both up-to-date and let you know if anything changes (hope Ansible is still around by the time I’m finished).
Updates didn’t fix it, but I figured it out. I’m attempting to incorporate some ansible calls into zenoss monitoring ultimately and had been making my attempts as the application id, which is configured to use the application’s bundled python. Must have gotten lucky when testing Linux guests, but something must be causing issues with Windows. I might not have even installed some of the dependency’s in the right python instance.
Thanks for all your help.