ansible - 使用 Ansible 有条件地向命令模块添加其他参数

标签 ansible jinja2

我有一个 ansible 角色的任务,它调用一个带有一堆 args 的脚本,这些 args 被定义为 ansible 变量。任务如下所示:

- name: Generate config files
  command: /etc/whatever/gen-config.sh -n {{domain}} -m {{ another_option }} -w {{ws_enabled | default('N') }} -r {{ last_one_optional}}

问题是 -r 是一个可选参数,所以有时我没有可传递给它的 ansible 变量,如果我使用 default("") 代替,脚本会提示。仅当定义了 {{last_one_optional}} 时,是否有某种方法可以选择性地包含 -r ?我看过一些 jinja 内联 if 语句,但我不知道这是否适用于 ansible。

最佳答案

使用条件:

{{ ('-r ' + last_one_optional) if last_one_optional is defined else '' }}

关于ansible - 使用 Ansible 有条件地向命令模块添加其他参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46592264/

相关文章:

python - 如何使用 Jinja2 将静态项附加到字典

python-2.7 - 用 jinja 解析 url

python - 如何不使用 jinja2 呈现整个字符串

ansible - 如何在 Ansible 中交替替换多个列表的元素?

ansible - 如何检查是否定义了多个ansible变量而不发出警告?

Ansible Tower API 不接受 token

python - [可靠];使用多个字典

mysql - Ansible 和 MySQL 远程权限

python - 未定义错误 : 'current_user' is undefined

jinja2 - Ansible 循环遍历模板中的组变量