ansible - 本地运行模块

标签 ansible

我正在开发一个冒烟测试手册,它可以简单地进行检查并确保我从我们的所有服务器中获得 HTTP 200。

我最初是这样做的:

---
- hosts: prod
  gather_facts: no
  tasks:
      - name: smoke test
        uri: url=http://{{ inventory_hostname }}/ status_code=200

这里的问题是这些服务器显然没有安装 httplib2,因此 URI 命令失败。

有没有一种方法可以让我在本地计算机上运行 uri 模块到远程计算机,以便运行所有这些模块并 curl 每个模块?如果可能的话,我想使用模块,因为更容易检查返回代码是否正是我想要的。

最佳答案

您可以使用delegate_to将任何任务委托(delegate)给本地主机或另一个远程主机:

- name: smoke test
  uri: url=http://{{ inventory_hostname }}/ status_code=200
  delegate_to: localhost

此外,还有 local_action 模块,但我更喜欢 delegate_to 方式。

- name: smoke test
  local_action: uri url=http://{{ inventory_hostname }}/ status_code=200

关于ansible - 本地运行模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33791062/

相关文章:

Ansible 模棱两可的环境值

Ansible:使用 YAML 文件中的键读取单个值

php - 如何在 Debian 上安装 apfd PHP 扩展

postgresql - 如何使 psql 进程在 ansible 中幂等?

git - 如何使用 Ansible 检索 check out 代码的提交消息?

ubuntu - 如何使用交互式身份验证修复 systemctl?

ansible - 如何在 Ansible 中创建包含一些示例内容的多个文件?

puppet - 如何将部署自动化工具集成到 Puppet 中?

loops - Ansible 和循环中的嵌套变量

ubuntu - Ansible开发环境