在本地运行模块

时间:2015-11-18 21:48:19

标签: ansible

我正在开发一个烟雾测试手册,它只是通过并确保我从所有服务器中获得HTTP 200。

我原本是这样做的:

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

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

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

1 个答案:

答案 0 :(得分:15)

您可以使用delegate_to将任何任务委派给localhost或其他远程主机:

- 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