# Ansible CredSSP configuration to connect to Windows Host

**URL:** <https://forum.ansible.com/t/ansible-credssp-configuration-to-connect-to-windows-host/27978>\
**Category:** Ansible Project\
**Tags:** windows\
**Created:** [July 6, 2018, 9:43pm UTC](https://forum.ansible.com/t/ansible-credssp-configuration-to-connect-to-windows-host/27978 "2018-07-06T21:43:28Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![NirMur](https://avatars.discourse-cdn.com/v4/letter/n/8e8cbc/32.png) [@NirMur](https://forum.ansible.com/u/NirMur)\
**Post date:** [July 6, 2018, 9:43pm UTC](https://forum.ansible.com/t/ansible-credssp-configuration-to-connect-to-windows-host/27978/1 "2018-07-06T21:43:28Z")

</div>

I am new to Ansible and trying to enable CredSSP to use AD authentication for my Windows host(Basic authentication works fine). I have added a group\_var file with the following information

ansible\_connection: winrm  
ansible\_user: [testuser@company.com](mailto:testuser@company.com)  
ansible\_password: password  
ansible\_port: 5986  
ansible\_winrm\_transport: credssp  
ansible\_winrm\_server\_cert\_validation: ignore  
ansible\_winrm\_credssp\_disable\_tlsv1\_2: true  
flex\_win\_service\_name: test\_service

Here is my host file  
[win\_sandbox:children]  
win\_testhost

[win\_testhost]  
testhost.company…com

Here is my playbook:

- hosts: win\_sandbox

Here is the command output:  
$ ansible-playbook -i hosts/sandbox\_hosts sandbox\_rpstart\_playbook.yml --vault-id [@prompt](https://github.com/prompt) -vvvvv  
ansible-playbook 2.5.3  
config file = /ansible/RP/playbooks/ansible.cfg  
configured module search path = [u’/export/home/algsglp1/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’]  
ansible python module location = /usr/lib/python2.7/site-packages/ansible  
executable location = /usr/bin/ansible-playbook  
python version = 2.7.5 (default, May 3 2017, 07:55:04) [GCC 4.8.5 20150623 (Red Hat 4.8.5-14)]  
Using /ansible/RP/playbooks/ansible.cfg as config file  
Vault password (default):  
setting up inventory plugins  
Parsed /ansible/RP/playbooks/hosts/sandbox\_hosts inventory source with ini plugin  
Loading callback plugin default of type stdout, v2.0 from /usr/lib/python2.7/site-packages/ansible/plugins/callback/default.pyc

PLAYBOOK: sandbox\_rpstart\_playbook.yml \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
1 plays in sandbox\_rpstart\_playbook.yml

PLAY [win\_sandbox] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
Found a vault\_id (default) in the vaulttext  
We have a secret associated with vault id (default), will try to use to decrypt /ansible/RP/hosts/group\_vars/win\_rrptglt6  
Trying to use vault secret=(\<ansible.parsing.vault.PromptVaultSecret object at 0x34045d0\>) id=default to decrypt /ansible/RP/hosts/group\_vars/win\_rrptglt6  
Trying secret \<ansible.parsing.vault.PromptVaultSecret object at 0x34045d0\> for vault\_id=default  
Decrypt of “/ansible/RP/hosts/group\_vars/win\_rrptglt6” successful with secret=\<ansible.parsing.vault.PromptVaultSecret object at 0x34045d0\> and vault\_id=default

TASK [Gathering Facts] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
task path: /ansible/RP/playbooks/sandbox\_rpstart\_playbook.yml:11  
Using module file /usr/lib/python2.7/site-packages/ansible/modules/windows/setup.ps1  
\<[testhost.domain.com](http://testhost.domain.com)\> ESTABLISH WINRM CONNECTION FOR USER: [testuser@company.com](mailto:testuser@company.com) on PORT 5986 TO [testhost.domain.com](http://testhost.domain.com)  
checking if winrm\_host [testhost.domain.com](http://testhost.domain.com) is an IPv6 address  
\<[testhost.domain.com](http://testhost.domain.com)\> WINRM CONNECT: transport=credssp endpoint=https:/testhost.domain.com:5986/wsman  
\<[testhost.domain.com](http://testhost.domain.com)\> WINRM CONNECTION ERROR: Required argument ‘socket’ (pos 2) not found  
Traceback (most recent call last):  
File “/usr/lib/python2.7/site-packages/ansible/plugins/connection/winrm.py”, line 356, in \_winrm\_connect  
self.shell\_id = protocol.open\_shell(codepage=65001) # UTF-8  
File “/usr/lib/python2.7/site-packages/winrm/protocol.py”, line 157, in open\_shell  
res = self.send\_message(xmltodict.unparse(req))  
File “/usr/lib/python2.7/site-packages/winrm/protocol.py”, line 234, in send\_message  
resp = self.transport.send\_message(message)  
File “/usr/lib/python2.7/site-packages/winrm/transport.py”, line 256, in send\_message  
response = self.\_send\_message\_request(prepared\_request, message)  
File “/usr/lib/python2.7/site-packages/winrm/transport.py”, line 261, in \_send\_message\_request  
response = self.session.send(prepared\_request, timeout=self.read\_timeout\_sec)  
File “/usr/lib/python2.7/site-packages/requests/sessions.py”, line 629, in send  
r = dispatch\_hook(‘response’, hooks, r, \*\*kwargs)  
File “/usr/lib/python2.7/site-packages/requests/hooks.py”, line 31, in dispatch\_hook  
\_hook\_data = hook(hook\_data, \*\*kwargs)  
File “/usr/lib/python2.7/site-packages/requests\_credssp/credssp.py”, line 447, in response\_hook  
response = self.handle\_401(response, \*\*kwargs)  
File “/usr/lib/python2.7/site-packages/requests\_credssp/credssp.py”, line 464, in handle\_401  
out\_token, step\_name = next(credssp\_gen)  
File “/usr/lib/python2.7/site-packages/requests\_credssp/credssp.py”, line 78, in credssp\_generator  
self.tls\_connection = SSL.Connection(self.tls\_context)  
TypeError: Required argument ‘socket’ (pos 2) not found

fatal: [[testhost.domain.com](http://testhost.domain.com)]: UNREACHABLE! =\> {  
“changed”: false,  
“msg”: “credssp: Required argument ‘socket’ (pos 2) not found”,  
“unreachable”: true  
}  
to retry, use: --limit @/ansible/ESO/RP/playbooks/sandbox\_rpstart\_playbook.retry

PLAY RECAP \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
[testhost.domain.com](http://testhost.domain.com) : ok=0 changed=0 unreachable=1 failed=0

I have followed the document [http://devopstechie.com/ansible-manage-windows-machine-with-ansible-by-credssp/](http://devopstechie.com/ansible-manage-windows-machine-with-ansible-by-credssp/) for this. Here is my pip list and ansible version.

$ pip list  
Package Version
