【问题标题】:Ansible using delegate_to with different ansible_ssh_common_argsAnsible 使用具有不同 ansible_ssh_common_args 的 delegate_to
【发布时间】:2020-12-16 07:16:39
【问题描述】:

我正在尝试从我的 ansible master 运行到主机(我们称之为 hostclient),这需要在另一个主机上执行某些操作(我们称之为 susemanagerhost :))。

hostclient 需要 ansible_ssh_common_args 并填充 proxycommand,而 susemanager 主机不需要 ansible_ssh_common_args,因为它是直接连接。

所以我想我可以使用delegate_to,但是名为hostclient 的主机和名为susemanagerhost 的主机对于变量ansible_ssh_common_args 的值不同。

我想我可以在运行中将ansible_ssh_common_args 的值更改为ansible_ssh_common_argsset_factansible_ssh_common_args_backup(因为我想恢复其他标准任务的原始值),然后将ansible_ssh_common_args 更改为null(从 ansible master 到 susemanager 主机的连接是直接连接,不需要 proxycommand)但它不起作用。
它似乎仍在使用ansible_ssh_common_args 的原始值。

【问题讨论】:

  • 请添加更多细节,例如错误消息等。
  • 错误是delegate_to的任务是连接错误,当我打开-vvv时,我看到它仍在使用旧的ansible_ssh_common_args,这就是连接错误的原因

标签: ansible suse sles


【解决方案1】:

ansible_ssh_common_args 通常用于“通过”代理服务器执行命令:

<ansible system> => <proxy system> => <intended host>

您提出问题的方式不需要使用ansible_ssh_common_args,并且可以坚持使用delegate_to

- name: execute on host client
  shell: ls -la

- name: execute on susemanagerhost
  shell: ls -la
  delegate_to: "root@susemanagerhost"

将此游戏称为:

ansible-playbook <play> --limit=hostclient

应该这样做。

编辑: 在 github 上提交错误后,可行的解决方案是:

ansible_ssh_common_args: '-o StrictHostKeyChecking=no -o ProxyCommand="ssh -W %h:%p -i ~/.ssh/id_rsa ansible@{{ jumphost_server }}"'

host_varsgroup_vars 中。 其次是静态使用delegate_to

delegate_to: <hostname>

hostname 应该是 ansible 使用的主机名。

但不使用:

delegate_to: "username@hostname"

这解决了我的问题,希望它也适合你。

【讨论】:

  • 您好,谢谢,问题是我需要 ansible_ssh_common_args,因为如您所说,我使用中间 te ssh 代理到达我的客户端节点,但是我有一个运行,我希望您从 susemanager 取消订阅一个 susemanager 客户端服务器,这需要我使用 ssh args 向客户端扔东西,还向 susemanager 服务器扔东西,但是我不能为 susemanager 服务器使用相同的 ssh args,因为我没有代理,而是我有一个 directo ssh端口 22 连接离子。
  • 这个问题在 2017 年被报告给 ansible。我已经为此在 github 上提交了一个新的 bug。github.com/ansible/ansible/issues/71695
  • 此响应不适用于此处,因为它与每个不同主机涉及不同 ssh args 的多个主机无关
  • 您可以选择为每个 group_vars 或 host_vars 文件添加不同的 ssh 参数。
  • 这很有趣,我星期一回去时会尝试,不确定它是否适用于委托,但肯定有希望,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 1970-01-01
  • 1970-01-01
  • 2020-03-29
  • 2022-10-06
  • 2017-08-29
  • 1970-01-01
相关资源
最近更新 更多