如何在Ansible中为JSON对象添加新根节点dashboard?
用Ansible实现JSON内容包裹到新根节点
完全可以通过Ansible实现这个操作,核心思路是读取原始JSON文件内容,将其封装到名为dashboard的根节点下,再写回文件。下面是具体的Playbook示例:
- name: 将JSON内容包裹到dashboard根节点 hosts: localhost tasks: - name: 读取原始JSON文件 slurp: src: /path/to/original.json register: original_json_raw - name: 解析JSON并封装到dashboard节点 set_fact: wrapped_json: dashboard: "{{ original_json_raw.content | b64decode | from_json }}" - name: 将处理后的JSON写入文件 copy: content: "{{ wrapped_json | to_nice_json(indent=2) }}" dest: /path/to/modified.json
代码说明:
- slurp模块:读取文件内容并以base64编码形式返回,避免文件编码相关问题。
- b64decode + from_json:先解码base64内容,再将字符串转换为JSON对象。
- set_fact:创建新变量
wrapped_json,把原始JSON对象作为dashboard键对应的值。 - copy模块:用
to_nice_json过滤器将JSON对象格式化为带缩进的易读字符串,写入目标文件。
你只需把/path/to/original.json和/path/to/modified.json替换为实际文件路径即可;如果需要直接覆盖原文件,将dest设为原始文件路径就行。
内容的提问来源于stack exchange,提问作者Albert
相关产品推荐
相关产品推荐

