pieterlexis.json_file
Ansibleライブラリ: json_file
jsonファイルを変更するためのライブラリモジュールです。
要件
なし
依存関係
なし
使用例
- hosts: all
tasks:
- name: 'foo'の値を'bar'に変更
json_file:
dest: /etc/file.conf
key: 'foo'
value: 'bar'
このライブラリは、キーにドット('.')を使うことでJSONのネストをサポートしています。 以下のファイルを考えてみてください。
{ "foo": {
"bar": "buzz"
}
}
"bar"の値を"whatever"に変更するには、次のようにします:
- hosts: all
tasks:
- name: 'bar'の値を'whatever'に変更
json_file:
dest: /etc/file.conf
key: 'foo.bar'
value: 'whatever'
キー名にドットが含まれている場合はエスケープする必要があります:
{ "foo.bar": "buzz" }
このように変更できます:
- hosts: all
tasks:
- name: 'foo.bar'の値を'whatever'に変更
json_file:
dest: /etc/file.conf
key: 'foo\.bar'
value: 'whatever'
値をnull
に設定するのは、Ansibleのバグのため、少し難しくなります。
value
をNone
に設定してこれを実現します:
- hosts: all
tasks:
- name: 'foo'をnullに設定
json_file:
dest: /etc/file.conf
key: 'foo'
value: None
時には、数字を文字列としてJSONファイルに保存する必要があります。
as_string
引数を'yes'に設定することでこれを保証します:
- hosts: all
tasks:
- name: 'foo'を"25"に設定
json_file:
dest: /etc/file.conf
key: 'foo'
value: 25
as_string: yes
このモジュールは、Ansible fileモジュールがサポートするすべての引数(例えば'owner'、'group'、'mode'など)をサポートしています。
謝辞
このライブラリはini_fileコアモジュールと@FauxFauxのghetto_jsonライブラリから大きな影響を受けています。
制限
json_file
は辞書(つまり、トップレベルが'{'のファイル)のみで動作します。
リストはサポートされておらず、テストもされていません。
ライセンス
MIT
著者情報
Pieter Lexis (@lieter_)