community.general.jc 过滤器 – 将许多 shell 命令和文件类型的输出转换为 JSON
注意
此过滤器插件是 community.general 集合 (版本 10.1.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.general
。您需要其他要求才能使用此过滤器插件,有关详细信息,请参见 要求。
要在 playbook 中使用它,请指定:community.general.jc
。
community.general 1.1.0 中的新增功能
概要
将许多 shell 命令和文件类型的输出转换为 JSON。
使用 jc 库。
要求
以下要求是在执行此过滤器的本地控制器节点上需要的。
将 jc 安装为 Python 库 (https://pypi.ac.cn/project/jc/)
输入
这描述了过滤器的输入,即 | community.general.jc
之前的数值。
参数 |
注释 |
---|---|
要转换的数据。 |
位置参数
这描述了过滤器的定位参数。这些是在以下示例中的 positional1
、positional2
等值:input | community.general.jc(positional1, positional2, ...)
参数 |
注释 |
---|---|
输入数据的正确解析器。 例如 注意:在解析器模块名称中使用下划线代替短划线(如果有)。 有关最新解析器列表,请参见 https://github.com/kellyjonbrazil/jc#parsers。 |
关键字参数
这描述了过滤器的关键字参数。这些是在以下示例中的 key1=value1
、key2=value2
等值:input | community.general.jc(key1=value1, key2=value2, ...)
参数 |
注释 |
---|---|
设置为 选项
|
|
设置为 选项
|
备注
注意
当关键字参数和位置参数一起使用时,位置参数必须列在关键字参数之前:
input | community.general.jc(positional1, positional2, key1=value1, key2=value2)
示例
- name: Install the prereqs of the jc filter (jc Python package) on the Ansible controller
delegate_to: localhost
ansible.builtin.pip:
name: jc
state: present
- name: Run command
ansible.builtin.command: uname -a
register: result
- name: Convert command's result to JSON
ansible.builtin.debug:
msg: "{{ result.stdout | community.general.jc('uname') }}"
# Possible output:
#
# "msg": {
# "hardware_platform": "x86_64",
# "kernel_name": "Linux",
# "kernel_release": "4.15.0-112-generic",
# "kernel_version": "#113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020",
# "machine": "x86_64",
# "node_name": "kbrazil-ubuntu",
# "operating_system": "GNU/Linux",
# "processor": "x86_64"
# }
返回值
键 |
描述 |
---|---|
处理后的输出。 返回:成功 |