目前,我会传递一个参数来包含并在另一个文件中使用该变量来有条件地检查要执行的块。
例如
- include: tasks/common.yml param=dns
任务/ common.yml:
---
- block:
- name: do something interesting
when: param == "dns"
- block:
- name: do another thing
when: param == "ip"
此方法在我的输出中有效但所有与条件不匹配的任务都显示为跳过。由于我有几十个任务并试图重用其中的一些,我看到很多跳过任务。
这样做有更好的方法吗?使用ansible 2.2
答案 0 :(得分:0)
在剧本或ansible参数中没有对此的支持。一种方法是将ansible配置为不显示跳过的任务。
请参阅:stdout_callback
2.0版中的新功能。
此设置允许您覆盖默认的stdout回调 ansible-剧本:
stdout_callback = skippy
编辑您的ansible配置文件(通常为/etc/ansible/ansible.cfg
)并在defaults
部分
stdout_callback = skippy
告诉ansible不要显示跳过的任务。
在设置为skippy
之前
TASK [Run scripts] *************************************************************
changed: [localhost] => (item=1)
skipping: [localhost] => (item=2)
设置为skippy
TASK [Run scripts] *************************************************************
changed: [localhost] => (item=1)