在Ansible中,在条件when
检查中正确使用变量的方法是使用Jinja2模板语法来引用变量。
以下是一个示例代码:
- name: Check if a package is installed
hosts: all
gather_facts: yes
tasks:
- name: Get the package facts
package_facts:
manager: apt
- name: Check if the package is installed
debug:
msg: "Package is installed"
when: "'nginx' in ansible_facts.packages"
- name: Install the package
apt:
name: nginx
state: present
when: "'nginx' not in ansible_facts.packages"
在上面的示例中,我们使用了ansible_facts.packages
变量来检查系统中是否已安装nginx
包。如果nginx
已安装,将输出"Package is installed",否则将安装nginx
包。
请注意,在条件when
中,我们使用了Jinja2模板语法将变量ansible_facts.packages
引用为字符串'nginx'
。这是因为在条件中只能使用字符串而不是变量本身。
希望这个示例对你有帮助!