我正在使用 lineinfile 模块,但它不支持 when 子句。
什么是让它只在Ubuntu(== Debian系列)上运行而不在CentOS上运行的简单方法?
我想我可以使用验证条款,但还有另外一种方法吗?如果没有,我会很感激一个有效的例子。
答案 0 :(得分:2)
lineinfile
任务肯定支持when
子句以及所有其他标准任务修饰符。这是一个简单的测试用例:
- name: test
hosts: localhost
tasks:
- local_action: lineinfile
dest=/tmp/test.txt
line="this is a test"
state=present
when: foo is defined
在没有定义变量foo
的情况下运行时:
TASK: [lineinfile dest=/tmp/test.txt line="this is a test" state=present] *****
skipping: [localhost]
运行时, foo
已定义:
TASK: [lineinfile dest=/tmp/test.txt line="this is a test" state=present] *****
changed: [localhost -> 127.0.0.1]
因此,只需在您的任务中添加以下内容即可:•
when: ansible_distribution == 'Ubuntu'