AnsibleではテンプレートエンジンのJinja2が使えます。
- Jinja2 filters — Ansible Documentation
- Template Designer Documentation — Jinja2 Documentation (2.8-dev)
なので、for文やjoin、mapなど使えるので、結構柔軟な記述ができたります。
単に一部のプロパティを取り出して結合ならば、map + join で行けます。
vars: items: - name: name1 value: value1 - name: name2 value: value2 tasks: - name: map join sample debug: msg: | {{ items | map(attribute='value') | join(',') }}
リストのプロパティの組み合わせで文字列を作り出し、改行で結合しようとした場合、mapとjoinの組み合わせでやるのは難しそうだったのでforで書いてみました。
tasks: - name: for sample debug: msg: | {% for item in items %} {{ item.name }} {{item.value}} {% endfor %}
いろいろ出来そうですね。