为单台 Ansible WinRM 主机绕过控制端代理
在 Ansible-core 2.19 与 pywinrm 0.5.0 下,通过 WinRM extras 接口传入 YAML null,同时保持证书校验开启。
当某台内网 WinRM 端点意外走了控制端的互联网代理时,把下列取值写入对应主机或组的变量中,与现有连接设置放在一起:
ansible_winrm_proxy: null
ansible_winrm_server_cert_validation: validate此写法适用于Ansible-core 2.19 配 pywinrm 0.5.0。插件会把所支持的 ansible_winrm_* 附加参数传给 pywinrm;YAML 中的 null 会变成 Python 的 None。
pywinrm 0.5.0 把 proxy=None 定义为关闭代理路由,并在会话中提供一个 no_proxy 通配符,同时保留其他常规环境与 TLS 配置。已安装的 transport.py 无需改动。
直接使用 pywinrm 时,可把 proxy=None 传给 Protocol。在本版本中,显式给出代理 URL 会选中该中间层;省略该选项则沿用基于环境变量的旧行为。
让 inventory 的写法与插件 API 保持一致:某个版本若暴露了带类型的代理选项,就可以用字符串哨兵值来记录,而不必使用这套 extras/null 接口。控制端仍需能访问该 Windows 主机,HTTPS 信任失败则需要正确的 CA 配置。server_cert_validation: validate 应继续保持生效。