我正在开发一个烟雾测试手册,它只是通过并确保我从所有服务器中获得HTTP 200。
我原本是这样做的:
---
- hosts: prod
gather_facts: no
tasks:
- name: smoke test
uri: url=http://{{ inventory_hostname }}/ status_code=200
这里的问题是这些服务器显然没有安装httplib2,因此URI命令失败。
有没有办法让我在本地计算机上运行uri模块到远程计算机上运行所有这些并卷曲每一个?我想尽可能使用模块,因为更容易检查返回代码是否正是我想要的。
答案 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