【问题标题】:Is there a way to delegate full Ansible playbooks (and not just tasks) to another host?有没有办法将完整的 Ansible 剧本(而不仅仅是任务)委托给另一个主机?
【发布时间】:2019-06-22 06:53:26
【问题描述】:

有没有办法将完整的剧本委托给另一个主机?看来,delegate_to 范式只适用于任务。 这是我要解决的特定场景: 主机 A(恰好是 AWX /Tower 主机)正在编排“大图” 主机 B 旨在运行细节。事实上,主机 B 将执行完整的 ceph 安装,这需要比主机 A 提供的更多的 pre-req。 ceph 安装程序是作为剧本“site.yml”的一大块交付的,它在主机 B 上运行良好,但在主机 A 上运行不正常。

任何想法如何解决这个问题?

我想人们会遇到类似的情况,例如最终目标位于防火墙后面,不会将每个目标都发送到 Ansible 主机。在这里,您还想将完整的剧本委托给防火墙后面的“Jump”主机。

【问题讨论】:

    标签: ansible delegation


    【解决方案1】:

    我认为这取决于您的确切要求。您似乎在描述对“控制节点”层次结构的需求(即在基本环境中运行ansible-playbook 的主机)。我不知道实现此目的的 Ansible 本机方法,但我对 Tower 并不十分熟悉,所以也许有人会提供更多细节。

    但是,您的具体示例描述了要管理的远程节点位于跳转框后面的情况。 Ansible 本身就支持这种情况,所以如果您的要求只是需要通过跳转框访问节点,因此不需要特别需要跳转框作为控制节点,这已经涵盖了。

    查看常见问题解答中的“How do I configure a jump host to access servers that I have no direct access to?”。还有几篇关于配置这个主题的博文:

    https://blog.scottlowe.org/2015/12/24/running-ansible-through-ssh-bastion-host/ https://selivan.github.io/2018/01/29/ansible-ssh-bastion-host.htmlenter link description here

    【讨论】:

    • 您好,感谢您的快速回复。通过 ansible_host=1.2.3.4 的网关选项可能有效。我会试一试的。
    【解决方案2】:

    通过使用 Ansible Tower 中的 virtualenv,我们已经解决了需要专用服务器将 playbook 分派到的问题。 无论如何,这是更优雅的解决方案,因此可以关闭此线程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 2019-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多