在Puppet中,使用exec资源时,可以指定“ unless”属性。除非“除非”命令以状态0退出,否则Puppet exec
将不会运行。
木偶示例:
exec { 'Make sure frob is installed':
command => 'apt-get install -y frob',
unless => 'frob --version',
}
Ansible的command module具有用于查找文件的“创建”选项,但是我看不到“除非”选项。
如何在Ansible中指定人偶风格的“除非”属性?
最佳答案
Ansible具有conditionals,您可以将其应用于任务。但是,when
不能直接映射到Puppet的unless
,因为它对Ansible变量(而不是Shell命令)进行操作。
但是,您仍然可以做自己想做的事情,只是不完全直接。这是文档中的示例:
tasks:
- command: /bin/false
register: result
ignore_errors: True
- command: /bin/something_else
when: result|succeeded