设置变量如果为空或未定义为ansible

时间:2017-06-20 14:02:57

标签: ansible

在我的ansible vars文件中,我有一个变量,有时会被设置,有时我想动态设置它。例如,我有一个我想要安装的RPM。我可以手动将位置存储在变量中,或者如果我没有特定的位置,我想从Jenkins中提取最新信息。我的问题是,我如何检查变量是否未定义或为空,如果是,只使用Jenkins的默认值(已存储在var中)?

以下是我的想法:

...code which gets host_vars[jenkins_rpm]
- hosts: "{{ host }}"
  tasks:
  - name: Set Facts
    set_fact:
      jenkins_rpm: "{{ hostvars['localhost']['jenkins_rpm'] }}"

  - name: If my_rpm is empty or not defined, just use the jenkins_rpm
    set_fact: my_rpm=jenkins_rpm
    when: !my_rpm | my_rpm == ""

1 个答案:

答案 0 :(得分:4)

default过滤器:

- set_fact:
    my_rpm: "{{ my_rpm | default(jenkins_rpm) }}"