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 中的一个 bug。
将 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_)