gpt4 book ai didi

ansible - 获取Ansible控制机IP地址的最佳方法

转载 作者:行者123 更新时间:2023-12-04 13:59:01 27 4
gpt4 key购买 nike

我正在使用 Ansible 和 ufw在我的服务器上设置防火墙。作为 ufw 的一部分规则我想允许来自 Ansible 控制机器的 SSH,但不允许来自其他任何地方。我的问题是 - 获取控制机器本身的 IP 地址以便我可以将其放入规则中的最佳方法是什么?

我知道我可以使用 facts获取我正在运行 playbook 的机器的 IP 地址,但我没有看到任何简单的方法可以为运行 ansible 的机器自动获取它。

如果可能的话,我想避免添加一个新变量来表示它,因为如果它可以自动发现会很好,但如果这是唯一已知的最佳方法,那么我会这样做。

编辑:我发现 this duplicate question这和我的一样,但是它也没有得到答复,所以会稍微开放一下。

最佳答案

{{ ansible_env['SSH_CLIENT'].split() | first }}

有效,但是您必须从默认用户那里收集有关连接变量的事实,所以八:
  • 在剧本级别
  • 上设置 «gather_facts: yes» 而不是 «become: yes»
  • 更可靠:运行 «setup» 任务(没有 «become: yes» 和在此 «ansible_env» 用法之前 - 在 «pre_tasks» 部分更好)。

  • 如果您使用«become»运行«gather/setup»,稍后您将得到«一个或多个 undefined variable :'dict object'没有属性'SSH_CLIENT'»(这是因为sudoed «setup»只能捕获一小部分变量)。

    关于ansible - 获取Ansible控制机IP地址的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34560622/

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