ansibleでrubyのArray#zipみたいなことをやる
varsで定義した2つの同じ要素数のリストをrubyのArray#zipみたいに結合してよしなに何かする場合のサンプル。
template module で利用するJinja2というpythonのテンプレートエンジンが、yamlでも展開して利用できる。
- name: "hogehoge" vars: list1: - "1" - "2" - "3" list2: - "a" - "b" - "c" list3: | {% set o = [] %} {% for i in list1 %} {% set _ = o.append({ 'hoge': i, 'huga': list2[loop.index0]}) %} {% endfor %} {{ o }} # list3 = [ {hoge: 1, huga: a}, {hoge: 2, huga: b}, {hoge: 3, huga: c} ] のようになる
参考
Template Designer Documentation — Jinja2 Documentation (2.8-dev)