gpt4 book ai didi

ansible - 如何使用ansible通过远程服务器向另一台远程服务器运行命令

转载 作者:行者123 更新时间:2023-12-05 07:07:01 28 4
gpt4 key购买 nike

在我们的工作设置中,有一个只能通过远程服务器 A 访问的远程服务器 B

  • 我如何从运行 ansible 的本地系统通过远程服务器 A 在远程服务器 B 上运行 ansible 命令/剧本,即,本地系统 --> 远程服务器 A --> 远程服务器 B
  • 远程服务器 B 可通过 远程服务器 A 通过 ssh 访问。但我无权访问 远程服务器 B
  • 的 ssh key

这是我根据以下答案在我的 inventory.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}

最佳答案

这可以通过 ansible_ssh_common_args 完成。

ansible_ssh_common_args
This setting is always appended to the default command line for sftp, scp, and ssh. Useful to configure a ProxyCommand for a certain host (or group).

来源:https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#connecting-to-hosts-behavioral-inventory-parameters

这是使用此配置的 list 示例,假设我的两台服务器都具有 FQDN

  • 远程服务器-A
  • 远程服务器-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"'

关于ansible - 如何使用ansible通过远程服务器向另一台远程服务器运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62288715/

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