2017-04-03 180 views
4

私はAnsibleにとってかなり新しく、YAMLファイルを理解しようとしています。その中で私はこの部分については明確ではない - file: dest={{ '{{' }} docroot {{ '}}' }。それらの中括弧{{''}} 'が何をしているのか、私に何か説明してもらえますか?YAMLファイルの中括弧{{{}は何を意味しますか?

- name: Create Web Root 

    when: nginxinstalled|success 

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

    notify: 

     - Reload Nginx 
+1

この例題はどこで手に入りましたか?このプレイは、2回目のJinja2の実行によって解析されるように見えます。結果は "dest = {{docroot}} mode = 755 ..."となります。 –

+0

これらのファイルの一部のみがYAMLファイルです。これらのファイルは、YAMLファイルを生成するためのテンプレートとして使用できる通常のファイルです。 – Anthon

答えて

3

はAnsibleは、渡された文脈からその内の式を評価するために使用されているJinja2のテンプレート

{{ }}を使用しています。

ので{{ '{{' }}が文字列{{

に評価し、while式{{ docroot }}docrootは、別のテンプレート変数

可能性があり、テンプレートに書かれているが詳細はhttps://docs.ansible.com/ansible-container/container_yml/template.htmlを参照してください。

+0

与えられた例で '{{'{{'}}'の目的は正確に何ですか? – techraf

0

私はこの資料がAnatile documantationの中でかなり有用であることを発見しました。

二重中括弧{{ variable }}は、式の評価に使用されます。 1つの中括弧(コロンの後)を区別する一方で、辞書を宣言するために使用されます。たとえば、

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

さらに、Jinja Template Designer Documentationをご覧ください。 JinjaテンプレートはYAMLの前にレンダリングされます。これは、AnSO実行前に評価されることを意味します。

{% ... %} for Statements 
{{ ... }} for Expressions to print to the template output 
{# ... #} for Comments not included in the template output 
# ... ## for Line Statements 
関連する問題