我想将巨大的嵌套字典作为extra_vars
传递给Ansible playbook
。我想在我的剧本中使用该词典中的值。
sample_dict = { 'student' : {'name' : 'coder', 'marks' : 100} }
我想将此字典作为extra_var
传递,我想使用其中的值。我无法使用jinja
模板访问字典中的单独值。
示例:
如果我想使用ansible-playbook
中的标记值,如何访问它?
我正在使用python3.5
和ansible 2.8.
模块来运行剧本。
答案 0 :(得分:0)
您可以通过两种方式在jinja
中浏览字典:
json_query
过滤器第一个使用括号[]
来浏览字典。并且,json_query
接收一个字符串,其中包含要读取的密钥的路径。
请查看以下playbook
示例:
---
- name: Diff test
hosts: local
connection: local
gather_facts: no
vars:
sample_dict:
student:
name: 'coder'
marks: 100
tasks:
- name: Using python dictionary interface
debug:
msg: '{{ sample_dict["student"]["marks"] }}'
- name: Using json_query
debug:
msg: '{{ sample_dict | json_query("student.marks") }}'
每个任务使用不同的方法来访问相同的变量。
希望对您有帮助。