什么是Ansible变量的"地图"?

s g*_*s g 5 ansible ansible-playbook

在Ansible的文档中,他们使用map关键字:http://docs.ansible.com/set_fact_module.html

在Ansible的文档中,我找不到任何有关的信息 map

它是什么?

小智 8

在以下示例中:

# Example setting host facts using complex arguments
- set_fact:
     one_fact: something
     other_fact: "{{ local_var * 2 }}"
     another_fact: "{{ some_registered_var.results | map(attribute='ansible_facts.some_fact') | list }}"
Run Code Online (Sandbox Code Playgroud)

在map实际上是一个Jinja2的过滤器和更多的信息可以在每发现的Jinja2官方文档:

map()
    Applies a filter on a sequence of objects or looks up an attribute. 
    This is useful when dealing with lists of objects but you are really 
    only interested in a certain value of it.
Run Code Online (Sandbox Code Playgroud)

实际上,在所有构造中,例如{{ variable_name | something_here }},我们实际上是在说"传递variable_name给名为的过滤器something_here"并返回结果.