Ansible:无法在Windows节点上ping [SSL:CERTIFICATE_VERIFY_FAILED]

时间:2016-11-30 14:59:42

标签: windows python-2.7 ssl ansible winrm

我有一台Ubuntu 16.04虚拟机和两台MS Windows Server 2008 R 2虚拟机。

我按照this说明操作直到"一旦我们设置了这两个文件,我们就可以查看测试连接性了#34;。现在我想ping Windows虚拟机。我得到了一个错误的comman,但我不知道是谁。

执行:

stefan@ansible-server:~/ansible_test$ ansible windows -i host -m win_ping

答案:

[IP-ADRESS] | FAILED! => {
    "failed": true,
    "msg": "ERROR! ssl: 500 WinRMTransport. [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:"
}
[IP-ADRESS] | FAILED! => {
    "failed": true,
    "msg": "ERROR! ssl: 500 WinRMTransport. [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:"
}

你知道它没有用吗?

2 个答案:

答案 0 :(得分:1)

我得到了解决方案,但我不是满意,因为这对我来说不是正确的解决方案,但它确实有效。

在文件夹ansible_test中创建:

mkdir callback_plugins
nano callback_plugins/fix-ssl.py

写入文件:

import ssl
if hasattr(ssl, '_create_default_https_context') and hasattr(ssl, '_create_unverified_context'):
    ssl._create_default_https_context = ssl._create_unverified_context

class CallbackModule(object):
    pass

执行命令

 ansible windows -i host -m win_ping -vvvvv

结果:

10.92.0.38 | SUCCESS => {
    "changed": false,
    "invocation": {
        "module_name": "win_ping"
    },
    "ping": "pong"
}

答案 1 :(得分:-1)

为了能够配置Windows机器,您需要在Windows机器中运行此电源shell,首先为winrm生成证书文件。

https://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1