Windows WinRM和Ansible的连接问题
我正在尝试连接到多个Windows节点,但遇到不同的错误。他们的行为都是一样的。我已经在其他环境中成功地做了很多次了,但在这种情况下,肯定有一些问题我找不到。如果相关的话,我的基础设施由一个Kubernetes集群组成,该集群由几个吊舱组成。其中一个pod有一个容器,我在其中安装了Ansible,我想从中与集群外的机器建立远程连接。下面我展示了我在其中一个节点中使其工作的所有尝试 首先,我运行了configureAnsibleformoting.ps1脚本来启动WinRM,以便Ansible可以连接。WinRM配置显示已启用基本、Kerberos、协商和证书身份验证。还配置了HTTP和HTTPS侦听器: 为了检查所有设置是否正确,我进行了一些测试:Windows WinRM和Ansible的连接问题,windows,ansible,ntlm,winrm,Windows,Ansible,Ntlm,Winrm,我正在尝试连接到多个Windows节点,但遇到不同的错误。他们的行为都是一样的。我已经在其他环境中成功地做了很多次了,但在这种情况下,肯定有一些问题我找不到。如果相关的话,我的基础设施由一个Kubernetes集群组成,该集群由几个吊舱组成。其中一个pod有一个容器,我在其中安装了Ansible,我想从中与集群外的机器建立远程连接。下面我展示了我在其中一个节点中使其工作的所有尝试 首先,我运行了configureAnsibleformoting.ps1脚本来启动WinRM,以便Ansible可以
[prueba_cinco]
host ansible_host=IP
[prueba_cinco:vars]
ansible_user=user
ansible_password=pass
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
[prueba_siete]
host ansible_host=IP
[prueba_siete:vars]
ansible_user=user
ansible_password=pass
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
ansible_winrm_transport=ntlm
-基本:端口5985
[prueba_cinco]
host ansible_host=IP
[prueba_cinco:vars]
ansible_user=user
ansible_password=pass
ansible_connection=winrm
ansible_port=5985
[prueba_siete]
host ansible_host=IP
[prueba_siete:vars]
ansible_user=user
ansible_password=pass
ansible_connection=winrm
ansible_winrm_transport=ntlm
ansible_port=5985
这是预期的行为,因为winrm配置中的AllowUnencrypted设置为false。
为了更深入地了解这个问题,我允许未加密的通信量,然后可以正常建立连接:
-NTLM:端口5986
[prueba_cinco]
host ansible_host=IP
[prueba_cinco:vars]
ansible_user=user
ansible_password=pass
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
[prueba_siete]
host ansible_host=IP
[prueba_siete:vars]
ansible_user=user
ansible_password=pass
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
ansible_winrm_transport=ntlm
-NTLM:端口5985
[prueba_cinco]
host ansible_host=IP
[prueba_cinco:vars]
ansible_user=user
ansible_password=pass
ansible_connection=winrm
ansible_port=5985
[prueba_siete]
host ansible_host=IP
[prueba_siete:vars]
ansible_user=user
ansible_password=pass
ansible_connection=winrm
ansible_winrm_transport=ntlm
ansible_port=5985
这是可行的,尽管获得了巨大的误差。后来,我与域用户尝试了此选项,但凭据被拒绝
-证书:端口5986(仅适用于HTTPS)
对于这种方法,我遵循了官方文件的程序。我已在Powershell中使用新的SerfSignedcertificate生成了一个证书。然后,我使用OpenSSL将创建的PFX文件转换为私钥(也包含公钥)。最后,我已经将证书导入到证书存储并将证书映射到帐户
[WINDOWS]
host ansible_host=IP
[WINDOWS:vars]
ansible_connection='winrm'
ansible_winrm_cert_pem='cert_win.pem'
ansible_winrm_cert_key_pem='cert_win.pem'
ansible_winrm_transport='certificate'
ansible_winrm_scheme='https'
ansible_winrm_server_cert_validation='ignore'
正如您可能已经注意到的,当我尝试通过端口5986连接时,无论使用何种方法或凭据,我都会获得超时(读取超时)。我增加了执行超时,但结果是一样的。另一方面,端口5985似乎正常工作,但出现了与标头相关的错误,我不知道原因。无论如何,我只会使用这个作为最后一个选项,因为我需要使用端口5986
为了确保容器配置不是导致这些问题的原因,我已经在另一个环境中部署了相同的映像,并且一切都正常工作。当我尝试连接到Windows节点时,我可以毫无错误地连接
有人知道发生了什么吗
先谢谢你