gpt4 book ai didi

python - 适用于Windows的Ansible:WinRM HTTPS设置

转载 作者:太空宇宙 更新时间:2023-11-03 14:36:24 25 4
gpt4 key购买 nike

我有一些想在Windows主机上运行的Ansible剧本。我遵循了各种Ansible指南来设置WinRM,并且它们运行良好,但是默认设置非常不安全,我希望可以进行更多生产。但是,有关如何执行此操作的说明非常少。到目前为止,我已经完成了以下工作:

在我的Windows框上:


使用提供的ConfigureRemotingForAnsible.ps1脚本启用WinRM
将目标计算机配置为在HTTPS / 5986上使用有效证书,而不是由上述脚本生成的自签名证书
在WinRM中的目标计算机上启用了Kerberos和CredSSP身份验证方法。我的某些角色步骤要求CredSSP可靠地工作。


到目前为止,Windows方面似乎工作良好。然而,证明Ansible的连接是一场噩梦。我无法弄清楚如何使Ansible信任目标上的HTTPS证书,尽管添加了它。在我的Centos 7“推送框”上,我执行了以下操作:


使用pywinrm,requests_kerberos和request_credssp模块安装Ansible和pip
将我的CA证书添加到/ etc / pki / tls / certs和/ etc / pki / ca-cert
将我的库存设置为以下内容:



  ansible_user=ADMINISTRATOR@DOMAIN.COM
  
  ansible_password =密码1
  
  ansible_port = 5986
  
  ansible_connection = winrm
  
  ansible_winrm_scheme = https
  
  /#ansible_winrm_server_cert_validation =忽略
  
  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证书?

最佳答案

在ansible控制主机上运行此命令:

python -c "import ssl; print(ssl.get_default_verify_paths())"


这样,您将看到python期望在哪里找到证书

确保CA信任证书是pem编码的
问候

关于python - 适用于Windows的Ansible:WinRM HTTPS设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47475154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com