2016-08-04 10 views
0

私はダイナミックロールロールと呼ばれるアナーシープレイブックを作ろうとしています。今、Anasyはそれをネイティブでサポートしていないので、私はこれを回避することができると思ったJinja2のテンプレート...しかし、私は実際にそれを行う方法もわかりません。それでは、私は、変数アシスタント - ジンジャー2をダイナミックロールに使用する

role_vars: 
    - role1 
    - role2 
    - role3 

マイテンプレートにおける役割のリストを持っているとしましょう:

- hosts: localhost 
    roles: > 
    {%- for name in role_vars %} 
    {{- '- ' + name + '\n ' -}} 
    {%- endfor %} 

私はそれがこのような何か得なければならないと仮定したい:

- hosts: localhost 
    roles: 
    - role1 
    - role2 
    - role3 

を私がすることができますそれを働かせないでください。だから私はどうしますか?それは可能ですか?

答えて

0

トリミング修飾子が多すぎます。
テンプレート::このお試しください

- hosts: localhost 
    roles: 
    {% for name in role_vars -%} 
    - {{ name }} 
    {% endfor %} 
+0

を私はそれを実行し、それは私に与える: ERRORを!構文YAMLのロード中にエラーが発生しました。 エラーがfile.yml ':line 23、column 6にあるように見えますが、正確な構文の問題によっては、ファイル内の他の場所にある可能性があります( )。 役割: 問題のある行があるように思われる {role_varsで名の% - %}私はあなたがパイプに「>」必要がある印象の下だ......... それjinja2を認識するのは難しいですが、それはまた私に誤りを与えました。 – ExaExcellion

+0

私はあなたが誤解していたと思うのですが...このテンプレートは、直接的ではなく、テンプレートのモジュールソースとして供給されるはずです。このようなプレイブックでは、jinja2を使用することは不可能な方法です。 –

+0

私が気づいたのは、 '>'記号がインラインテンプレートを意味しているということでした。明らかに、これは面倒なシナリオにつながる可能性があります。しかし、あなたはこの場合、モジュールを使用して言ったように、より良いです、ありがとう! – ExaExcellion

関連する問題