在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

08-07 14:18