在我的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 == ""
答案 0 :(得分:4)
有default
过滤器:
- set_fact:
my_rpm: "{{ my_rpm | default(jenkins_rpm) }}"