我有一台需要与主机 C 通信的 ansible 控制机器(主机 A),一台没有本地用户的 Windows 机器(它是一个 Active Directory)。
主机 A 无法访问主机 C,但可以使用主机 B 进行通信。
host-B 它是一台 linux 机器。
host-A 通过 ssh 访问 host-B。
在这篇文章之后,我创建了一个 nginx 服务器来路由主机 B上的 WinRM 流量
server {
listen 5986 default ssl;
server_name localhost;
ssl_certificate ssl/nginx.crt;
ssl_certificate_key ssl/nginx.key;
location /host-c {
proxy_pass https://host-c-address:5986/wsman;
}
}
Run Code Online (Sandbox Code Playgroud)
我对 host-C 的 ansible 库存如下:
[windows]
host-c ansible_host=host-b ansible_winrm_path=host-c
Run Code Online (Sandbox Code Playgroud)
而group_vars窗户是:
ansible_user: myuser
ansible_pass: andmypass
ansible_port: 5986
ansible_connection: winrm
ansible_winrm_realm: HOSTCDOMAIN.LOCAL
ansible_winrm_scheme: https
ansible_winrm_transport: kerberos …Run Code Online (Sandbox Code Playgroud)