Я пытаюсь отфильтровать запущенные службы из вывода модуля scan_services (или service_facts в >= 2.5). Вывод этого модуля примерно такой:
"ansible_facts": {
"services": {
"NetworkManager-dispatcher.service": {
"name": "NetworkManager-dispatcher.service",
"source": "systemd",
"state": "running"
},
"NetworkManager-wait-online.service": {
"name": "NetworkManager-wait-online.service",
"source": "systemd",
"state": "stopped"
},
"NetworkManager.service": {
"name": "NetworkManager.service",
"source": "systemd",
"state": "running"
},
Теперь то, что я пытаюсь сделать, это перечислить только имена служб, которые находятся в состоянии: работает... Этот код, похоже, вообще не работает:/
---
- hosts: all
tasks:
- name : Scan current services status
scan_services:
register: running_services
- name: print
debug: var=item
with_items: "{{ running_services.|json_query('ansible_facts.services.[?state=='running'].name')}}"
...но я думаю, что я где-то рядом. Я думаю, в этом json_query чего-то не хватает :(