在我们的工作设置中,有一个remote server B
只能通过远程服务器A进行访问。
remote server B
可通过ssh通过remote server A
访问。但是我无权访问remote server B
这是我根据以下答案尝试在自己的stock.yaml文件中执行的操作
hosts:
remote-serverB:
vars:
ansible_connection: "ssh"
ansible_user: "userB"
ansible_ssh_common_args: '-o ProxyCommand="sshpass -p <password> ssh -W %h:%p -q userA@remote-serverA"'
但是我从ansible收到以下错误
UNREACHABLE {"changed": false, "msg": "EOF on stream; last 100 lines received:\nssh_exchange_identification: Connection closed by remote host\r", "unreachable": true}
答案 0 :(得分:0)
这可以通过ansible_ssh_common_args
完成。
ansible_ssh_common_args
此设置始终附加到sftp,scp和ssh的默认命令行中。为特定主机(或组)配置ProxyCommand
很有用。
以下是使用此配置的清单的示例,假设我的两个服务器都具有FQDN
remote-server-A
remote-server-B
,登录remote-server-A
的用户是user-to-A
。
all:
servers-needing-jump:
hosts:
remote-server-B:
vars:
ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q user-to-A@remote-server-A"'