【发布时间】:2019-05-03 20:50:48
【问题描述】:
我需要知道是否可以从目标机器调用/执行 ansible playbook。我想我看到供应商这样做了,或者至少是类似的事情。他们下载了一个脚本,它确实运行了剧本。
如果可以的话怎么做?
我的目标是在 aws 中作为集中式服务器运行 ansible 以在多个环境中执行任务。大多数都在防火墙后面,任何建议/想法将不胜感激。
【问题讨论】:
标签: windows ansible configuration-management
我需要知道是否可以从目标机器调用/执行 ansible playbook。我想我看到供应商这样做了,或者至少是类似的事情。他们下载了一个脚本,它确实运行了剧本。
如果可以的话怎么做?
我的目标是在 aws 中作为集中式服务器运行 ansible 以在多个环境中执行任务。大多数都在防火墙后面,任何建议/想法将不胜感激。
【问题讨论】:
标签: windows ansible configuration-management
当然。如果您的主机将在目标上安装 Ansible 并将其与所有 playbook 一起提供,您可以将其作为任何其他可执行文件运行。如果你这样做是另一回事,但技术上没有障碍。
【讨论】:
您可以像在目标的 $PATH 上运行任何其他二进制文件一样运行 ansible 和 ansible playbook,因此任何有助于运行远程命令的工具都可以工作。
因为您在 AWS 中,所以一种方法可能是使用 AWS System's Manager。
如果您想使用 Ansible 本身来执行此操作,您可以使用 shell 或 command 模块:
- hosts: target
become: false
gather_facts: false
tasks:
- name: ansible in ansible
command: ansible --version
- name: ansible-playbook in ansible
command: ansible-playbook --version
不过,与任何使用 shell 或 command 模块的情况一样,您必须保持警惕,以自己保持剧本幂等性。
如果您只需要远程执行 Ansible 命令的能力,您可以查看 AWX,它是 Red Hat 的 Ansible Tower 的上游项目。它将 ansible 包装在一个漂亮的用户界面中,让您可以远程触发 Ansible 剧本,并使用 RBAC 之类的好东西。
【讨论】:
如果您可以通过 ssh 远程执行任务,请查看Sparrowdo,它具有开箱即用的功能,可以从一个主主机远程运行 bash 脚本(读取 ansible 可执行文件)。或者您甚至可以使用它来安装所有 ansible 依赖项或您需要为您的范围做的任何事情。
【讨论】: