:私はどのように変数の値をyamlキーとして使用しますか?在庫に応じて、私は私の脚本で、変数の名前でYAMLキーを代用したいと思い
config:
{{ db_name }}:
other_config
いくつかの点で、後に、私はテンプレートで使用to_nice_json
を経由してJSONにそれを変換します。しかし、JSONでは、変数名の代わりに{{ db_name }}
が表示されます。キーコンテキストで変数値を使用する回避策はありますか?
:私はどのように変数の値をyamlキーとして使用しますか?在庫に応じて、私は私の脚本で、変数の名前でYAMLキーを代用したいと思い
config:
{{ db_name }}:
other_config
いくつかの点で、後に、私はテンプレートで使用to_nice_json
を経由してJSONにそれを変換します。しかし、JSONでは、変数名の代わりに{{ db_name }}
が表示されます。キーコンテキストで変数値を使用する回避策はありますか?
テンプレートで変数を変更する場合は、変数の代わりにreplaceをキーとして使用できます。例えば は、テンプレートの正規表現で検索用の名前(CHANGETHISVAR)を設定し、モジュールを使用するには:
- replace:
path: /path/to/your/file
regexp: '(CHANGETHISVAR)'
replace: 'db_name'
テンプレートのタスクを実行した後、このルーチンを追加します。
しかし、JSONに、私はあなたが "JSONに" 間違った何かを
{{ db_name }}
代わりに、変数名の
を参照してください。
例:
---
- hosts: localhost
gather_facts: no
connection: local
vars:
db_name: DB1
config: "{'{{ db_name }}':'value'}"
tasks:
- debug:
var: config
結果:私はここに述べた要件から理解して何から
TASK [debug] *******************************************************************
ok: [localhost] => {
"config": {
"DB1": "value"
}
}
、次は動的なJSONの設定を生成するための実行可能な方法であるかもしれない: