Ich verwende das Yum-Modul in ansible, um alle Aktualisierungen auf einem System aufzulisten. Der Ausgang ist so etwas wie diese:JSON-Ausgabe von Ansible filtern und mit Zeichenfolge vergleichen
results: [
{
"name": "rubygem-ffi",
"nevra": "0:rubygem-ffi-1.9.10-2.el7.x86_64",
"repo": "epel",
"epoch": "0",
"version": "1.9.10",
"release": "2.el7",
"yumstate": "available",
"arch": "x86_64"
}
{
"name": "some-package",
"nevra": "blah",
"repo": "epel",
"epoch": "0",
"version": "6",
"release": "6.el7",
"yumstate": "available",
"arch": "x86_64"
}
]
und der Code, den ich in Aufgaben verwenden ist:
- name: yum list
yum: list=updates
register: output
Was ich will, ist nur eine Debug-Nachricht zu drucken, wenn der Name eines Pakets in dem gefunden wird Json-Ausgabe. Wie folgt aus:
- debug: msg="Found it!"
when: [output.I don't know the right filter] == "rubygem-ffi"
Ich habe versucht, so etwas wie output.results.name
oder output.results|map(attribute='name')|list
aber sie scheinen nicht
Irgendwelche Hinweise?