Ansible 相当于 Puppet 的“除非”属性

Chr*_*ong 5 puppet ansible

在 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 风格的“除非”属性?

Xio*_*iov 5

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)