双花括号({{)在YAML文件中是什么意思(由Ansible使用)?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双花括号({{)在YAML文件中是什么意思(由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
答案
Ansible使用jinja2模板
{{ }}
用于从传递的上下文中评估它们内部的表达式。
所以{{ '{{' }}
评估字符串{{
while表达式{{ docroot }}
被写入模板,其中docroot
可能是另一个模板变量
请参阅https://docs.ansible.com/ansible-container/container_yml/template.html了解更多详情。
另一答案
我在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
以上是关于双花括号({{)在YAML文件中是什么意思(由Ansible使用)?的主要内容,如果未能解决你的问题,请参考以下文章
这些花括号在 python Django 中是啥意思? **
这个“(function());”,括号内的函数,在javascript中是啥意思? [复制]