在Ansible中,可以使用ansible_facts
特殊变量来访问主机上收集到的事实。可以将ansible_facts
传递给Jinja模板,并将其作为字典在模板中使用。
以下是一个示例,展示了如何在Ansible中使用Jinja模板引用Ansible事实的字典形式:
facts.yml
的Ansible playbook文件,用于收集主机事实和渲染Jinja模板:---
- name: Collect facts and render Jinja template
hosts: localhost
gather_facts: true
tasks:
- name: Collect facts
setup:
- name: Render Jinja template
template:
src: template.j2
dest: output.txt
template.j2
的Jinja模板文件,用于引用Ansible事实的字典:Ansible facts:
{% for key, value in ansible_facts.items() %}
{{ key }}: {{ value }}
{% endfor %}
ansible-playbook facts.yml
output.txt
的文件,其中包含了Ansible事实的字典形式。在这个示例中,我们使用ansible_facts.items()
方法迭代ansible_facts
字典中的键值对,并在Jinja模板中将其打印出来。你可以根据需要自定义Jinja模板中的输出格式和内容。