相当于 Puppet 的 "unless" 属性的 Ansible
Ansible equivalent of Puppet's "unless" attribute
在 Puppet 中,当使用 exec resource, you can specify an "unless" 属性时。Puppet exec
不会 运行 除非 "unless" 命令以状态 0 退出。
人偶示例:
exec { 'Make sure frob is installed':
command => 'apt-get install -y frob',
unless => 'frob --version',
}
Ansible 的 command module 有一个查找文件的 "creates" 选项,但我没有看到 "unless" 选项。
如何在 Ansible 中指定 Puppet 风格的 "unless" 属性?
Ansible 有 conditionals 可以应用于任务。但是,when
不会直接映射到 Puppet 的 unless
,因为它对 Ansible 变量而不是 shell 命令进行操作。
但是,您仍然可以做您想做的事,只是没那么直接。这是文档中的示例:
tasks:
- command: /bin/false
register: result
ignore_errors: True
- command: /bin/something_else
when: result|succeeded
在 Puppet 中,当使用 exec resource, you can specify an "unless" 属性时。Puppet exec
不会 运行 除非 "unless" 命令以状态 0 退出。
人偶示例:
exec { 'Make sure frob is installed':
command => 'apt-get install -y frob',
unless => 'frob --version',
}
Ansible 的 command module 有一个查找文件的 "creates" 选项,但我没有看到 "unless" 选项。
如何在 Ansible 中指定 Puppet 风格的 "unless" 属性?
Ansible 有 conditionals 可以应用于任务。但是,when
不会直接映射到 Puppet 的 unless
,因为它对 Ansible 变量而不是 shell 命令进行操作。
但是,您仍然可以做您想做的事,只是没那么直接。这是文档中的示例:
tasks:
- command: /bin/false
register: result
ignore_errors: True
- command: /bin/something_else
when: result|succeeded