双花括号({{)在YAML文件中是什么意思(由Ansible使用)?

时间:2017-04-03 12:45:52

标签: ansible

我对Ansible很新,并试图了解YAML文件。因为我不清楚这条线 - file: dest={{ '{{' }} docroot {{ '}}' }。有人可以解释一下这些花括号'{{''}}'正在做什么吗?

- name: Create Web Root

    when: nginxinstalled|success

    file: dest={{ '{{' }} docroot {{ '}}' }} mode=775 state=directory owner=www-data group=www-data

  notify:

      - Reload Nginx

2 个答案:

答案 0 :(得分:6)

Ansible使用jinja2模板

{{ }}用于从传递的上下文中评估它们内部的表达式。

所以{{ '{{' }}评估为字符串{{

while表达式{{ docroot }}被写入模板,其中docroot可能是另一个模板变量

请参阅https://docs.ansible.com/ansible-container/container_yml/template.html了解详情。

答案 1 :(得分:3)

我在Ansible文档中找到了这个YAML syntax overview,非常有用。

它表示双花括号{{ variable }}用于计算表达式。区分单个花括号(冒号后),用于声明字典。例如:

satchmo: {name: Louis Armstrong, music: Jazz, instrument: Trumpet}

另外,请查看Jinja Template Designer Documentation。 Jinja模板在YAML之前呈现,这意味着它在Ansible执行之前被评估。

{% ... %} for Statements
{{ ... }} for Expressions to print to the template output
{# ... #} for Comments not included in the template output
#  ... ## for Line Statements