我有一些Ansible剧本我想对某些Windows主机运行 . 我已经按照各种Ansible指南设置了WinRM并且它们运行良好,但默认设置非常不安全,我想要更多的 生产环境 准备 . 但是,如何执行此操作的说明极其稀疏 . 到目前为止,我已经完成了以下工作:
在我的Windows框中:
使用提供的ConfigureRemotingForAnsible.ps1脚本启用WinRM
配置目标计算机以在HTTPS / 5986上使用有效证书,而不是上述脚本生成的自签名证书
在WinRM中的目标计算机上启用了Kerberos和CredSSP身份验证方法 . 我的一些角色步骤要求CredSSP可靠地工作 .
到目前为止,Windows方面似乎运行良好 . 然而,让Ansible连接正在成为一场噩梦 . 我无法弄清楚如何让Ansible信任目标上的HTTPS证书,尽管添加它 . 在我的Centos 7'推箱'上,我做了以下工作:
使用pywinrm,requests_kerberos和requests_credssp模块安装Ansible和pip
将我的CA证书添加到/ etc / pki / tls / certs和/ etc / pki / ca-cert
将我的库存设置为以下内容:
ansible_user=ADMINISTRATOR@DOMAIN.COM ansible_password = Password1 ansible_port = 5986 ansible_connection = winrm ansible_winrm_scheme = https /#ansible_winrm_server_cert_validation = ignore ansible_winrm_transport = credssp
启用认证验证后,连接将失败,并显示以下错误:
fatal: [host.domain.com]:
UNREACHABLE! => {
"changed": false,
"msg": "credssp: HTTPSConnectionPool(host='host.domain.com', port=5986): Max retries exceeded with url: /wsman (Caused by SSLError(SSLError(\"bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)\",),))",
"unreachable": true}
关闭证书验证后,它可以正常工作 .
所以我的问题是:如何让Ansible信任我的CA证书?