在Ansible中未定义变量时,如何运行任务?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (9)

正在寻找一种方法来执行一个任务,当Ansible变量不是寄存器/未定义时,例如

-- name: some task
   command:  sed -n '5p' "{{app.dirs.includes}}/BUILD.info" | awk '{print  $2}'
   when: (! deployed_revision) AND ( !deployed_revision.stdout )
   register: deployed_revision
提问于
用户回答回答于

可以使用Jinja 2定义的测试。例如:

tasks:

- shell: echo "I've got '{{ foo }}' and am not afraid to use it!"
  when: foo is defined

- fail: msg="Bailing out. this play requires 'bar'"
  when: bar is not defined

所以在你的情况下,when: deployed_revision is not defined应起作用

扫码关注云+社区