Estou usando o Ansible sobre Python3 e Enterprise Linux 8 (Rocky Linux 8).
Quando tento usar json_query
, recebo o seguinte erro:
fatal: [ansible]: FAILED! => {"msg": "You need to install \"jmespath\" prior to running json_query filter"}
Mas o módulo Python parece já estar instalado:
# dnf install python3-jmespath
Last metadata expiration check: 1:44:38 ago on Mi 02 Nov 2022 12:54:28 CET.
Package python3-jmespath-0.9.0-11.el8.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!
# pip3 install jmespath
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Requirement already satisfied: jmespath in /usr/lib/python3.6/site-packages
Testei jmespath
em um interpretador Python interativo, que está rodando corretamente, sem erro. Isso parece confirmar que o módulo Python está instalado e funciona corretamente.
Parece que o problema ocorre apenas ao usar o Ansible.
Aqui está o playbook que estou usando para testar:
---
- name: test json_query
hosts: ansible
vars:
data:
list1:
one:
name: "hello"
two:
name: "world"
tasks:
- name: search variable
ansible.builtin.debug:
var: item
loop: "{{ data | community.general.json_query('list1[*].name') }}"
o que estou perdendo?