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_)

关于项目

Library module to manipulate JSON files without the use of templates or files

安装
ansible-galaxy install pieterlexis.json_file
许可证
mit
下载
854
拥有者