Read a JSON text into a variable in Ansible without parsing it
For one project I need to insert the content of a local file into another file on the remote system, and the first file happens to be JSON. The JSON file is in compact format (jq --compact-output) and is supposed to stay this way. When Ansible reads the content of the file, it determines that the content is JSON, and parses the content into the variable - and along the way is uncompressing the format. Not what I want.
To keep the file content as string, it is necessary to tell Ansible to handle this as string.
Reading the file:
- name: Read JSON from file
set_fact:
json_content: "{{ lookup('file', '/home/user/text-shrinked.txt') | string }}"
When writing the file on the remote host (simplified):
- name: Write JSON
copy:
content: "{{ json_content | string }}"
dest: "/tmp/json.txt"
The usage of the string filter avoids parsing the content as JSON.
Comments
Display comments as Linear | Threaded