在 Puppet 中,当使用exec资源时,您可以指定“ unless ”属性。除非“unless”命令以状态 0 退出,否则Puppetexec不会运行。
木偶示例:
exec { 'Make sure frob is installed':
command => 'apt-get install -y frob',
unless => 'frob --version',
}
Run Code Online (Sandbox Code Playgroud)
Ansible 的命令模块有一个“创建”选项来查找文件,但我没有看到“除非”选项。
如何在 Ansible 中指定 Puppet 风格的“除非”属性?
Ansible 具有可应用于任务的条件。但是,when它并不直接映射到 Puppet 的unless,因为它对 Ansible 变量而不是 shell 命令进行操作。
但是,您仍然可以做您想做的事,只是不那么直接。这是文档中的示例:
tasks:
- command: /bin/false
register: result
ignore_errors: True
- command: /bin/something_else
when: result|succeeded
Run Code Online (Sandbox Code Playgroud)