私は、可能性のある遊びを書いています。タスクの1つは、JSONドキュメントにエントリを追加することです。例えば。jqを使用してAnabilitiesテンプレートから生成された出力を追加します。
JSONドキュメントstaff.json
:
{
"staff":[
{
"john":[
{
"position":"techwriter"
},
{
"sex":"male"
}
]
}
]
}
私はstaff
にこのエントリを追加する必要があります。
{
"staff":[
{
"john":[
{
"position":"techwriter"
},
{
"sex":"male"
}
]
},
{
"jane":[
{
"position":"admin"
},
{
"sex":"female"
}
]
}
]
}
エントリはAnsible
template
、このようなものから生成される
:
{
"{{ staff_name }}":[
{
"position":"{{ staff_position }}"
},
{
"sex":"{{ staff_sex }}"
}
]
}
私はを使うことを学んだ「Add json array element with jq (cmdline)」に示すように、JSONドキュメントに対して〜append entryが表示されます。しかし、テンプレートとしてファイルに出力されるので、私はこれをAnabilitiesでどのように実装できるのか分かりません。
cat staff.json | jq '.staff |= .+ ["OUTPUT_FROM_TEMPLATE"]'
すべてのアイデアは歓迎:
私はこのような何かのソリューションが必要です。 Ansibleテンプレートエンジンは、それが辞書に評価できるJSON文字列に変換するので、あなたはitem
でto_json
フィルタを使用する必要が
- shell: cat staff.json | jq '.staff |= . + [{{ item | to_json }}]' > staff.json
with_template: person.j2
vars:
staff_name: jane
staff_position: admin
staff_sex: female
注:
jqソリューションを求めていないので、私はjqタグを削除しています。 –