【问题标题】:Is it possible to call ansible or ansible-playbook directly on a target host using a script or ansible itself?是否可以使用脚本或 ansible 本身直接在目标主机上调用 ansible 或 ansible-playbook?
【发布时间】:2019-05-03 20:50:48
【问题描述】:

我需要知道是否可以从目标机器调用/执行 ansible playbook。我想我看到供应商这样做了,或者至少是类似的事情。他们下载了一个脚本,它确实运行了剧本。

如果可以的话怎么做?

我的目标是在 aws 中作为集中式服务器运行 ansible 以在多个环境中执行任务。大多数都在防火墙后面,任何建议/想法将不胜感激。

【问题讨论】:

    标签: windows ansible configuration-management


    【解决方案1】:

    当然。如果您的主机将在目标上安装 Ansible 并将其与所有 playbook 一起提供,您可以将其作为任何其他可执行文件运行。如果你这样做是另一回事,但技术上没有障碍。

    【讨论】:

      【解决方案2】:

      您可以像在目标的 $PATH 上运行任何其他二进制文件一样运行 ansible 和 ansible playbook,因此任何有助于运行远程命令的工具都可以工作。

      因为您在 AWS 中,所以一种方法可能是使用 AWS System's Manager

      如果您想使用 Ansible 本身来执行此操作,您可以使用 shellcommand 模块:

      - hosts: target
        become: false
        gather_facts: false
        tasks:
        - name: ansible in ansible
          command: ansible --version
      
        - name: ansible-playbook in ansible
          command: ansible-playbook --version
      

      不过,与任何使用 shellcommand 模块的情况一样,您必须保持警惕,以自己保持剧本幂等性。

      如果您只需要远程执行 Ansible 命令的能力,您可以查看 AWX,它是 Red Hat 的 Ansible Tower 的上游项目。它将 ansible 包装在一个漂亮的用户界面中,让您可以远程触发 Ansible 剧本,并使用 RBAC 之类的好东西。

      【讨论】:

        【解决方案3】:

        如果您可以通过 ssh 远程执行任务,请查看Sparrowdo,它具有开箱即用的功能,可以从一个主主机远程运行 bash 脚本(读取 ansible 可执行文件)。或者您甚至可以使用它来安装所有 ansible 依赖项或您需要为您的范围做的任何事情。

        【讨论】:

          猜你喜欢
          • 2020-01-24
          • 1970-01-01
          • 2019-11-11
          • 2015-11-17
          • 2021-11-04
          • 2017-01-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多