2017-06-20 140 views
1

在我的变量变量文件中,我有一个变量有时会被设置,而其他时候我想动态设置它。例如,我有一个我想要安装的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 == "" 

回答

3

default过滤为:

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

这正是是我一直在寻找。谢谢!我只是无法弄清楚默认过滤器是如何工作的。 – user3270760