community.general.jc filter – Convert output of many shell commands and file-types to JSON
Note
This filter plugin is part of the community.general collection (version 9.4.0).
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
You need further requirements to be able to use this filter plugin,
see Requirements for details.
To use it in a playbook, specify: community.general.jc
.
New in community.general 1.1.0
Synopsis
Convert output of many shell commands and file-types to JSON.
Uses the jc library.
Requirements
The below requirements are needed on the local controller node that executes this filter.
jc installed as a Python library (https://pypi.org/project/jc/)
Input
This describes the input of the filter, the value before | community.general.jc
.
Parameter |
Comments |
---|---|
The data to convert. |
Positional parameters
This describes positional parameters of the filter. These are the values positional1
, positional2
and so on in the following
example: input | community.general.jc(positional1, positional2, ...)
Parameter |
Comments |
---|---|
The correct parser for the input data. For example Note: use underscores instead of dashes (if any) in the parser module name. See https://github.com/kellyjonbrazil/jc#parsers for the latest list of parsers. |
Keyword parameters
This describes keyword parameters of the filter. These are the values key1=value1
, key2=value2
and so on in the following
example: input | community.general.jc(key1=value1, key2=value2, ...)
Parameter |
Comments |
---|---|
Set to Choices:
|
|
Set to Choices:
|
Notes
Note
When keyword and positional parameters are used together, positional parameters must be listed before keyword parameters:
input | community.general.jc(positional1, positional2, key1=value1, key2=value2)
Examples
- 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"
# }
Return Value
Key |
Description |
---|---|
The processed output. Returned: success |