Wie überprüft man, ob ein Element in einem Ansible-Array vorhanden ist?

8

Nehmen wir an, ich habe das folgende Beispiel, in dem alle git config -Werte in einer Ansible-Variablen gespeichert werden:

%Vor%

Ansible speichert das Ergebnis dieses Befehls in der Variablen git_config_list , und eines der Elemente ist stdout_lines , das die Ausgabe des Befehls in einem Array von Einträgen enthält, z. B.

%Vor%

Wie kann ich prüfen, ob ein bestimmter Wert bereits eingestellt ist, z. um zu überprüfen, ob user.name einen Wert hat?

Gibt es eine Möglichkeit, etwas wie contains im Array aufzurufen, kombiniert mit einem regulären Ausdruck, so dass ich den Wert finde, den ich suche? Oder muss ich die stdout_lines Einträge durchlaufen, um zu finden, wonach ich suche?

Ein Beispiel, wie man so etwas macht, wäre zu begrüßen.

    
nwinkler 20.03.2015, 07:12
quelle

2 Antworten

5

Theoretisch sollte dies möglich sein, indem die Filter match und select . Letzterer gibt nur diejenigen Listenelemente zurück, die einen anderen Filter passieren. Dann könnten Sie die Länge des Ergebnisses testen.

In der Theorie. Ich habe es gerade getestet und kann es nicht zur Arbeit bringen. Im Allgemeinen gibt der select (sowie der reject ) Filter einen String wie <generator object _select_or_reject at 0x10531bc80> zurück, sogar mit einfachen Filtern wie dem Beispiel aus den Dokumenten mit odd . Konnte noch keine Lösung finden. Vielleicht hast du mehr Erfolg.

Sie könnten jedoch einfach join Ihrer Liste zu einer Zeichenkette hinzufügen und dann in der Zeichenkette mit match suchen. Obwohl es hässlich ist, funktioniert es.

%Vor%     
udondan 20.03.2015, 07:39
quelle
15

Einfaches Python in würde gut funktionieren. HINWEIS: Ich verwende stdout anstelle von stdout_lines :

%Vor%

Alles in allem ansible ist schrecklich für die Programmierung. Versuchen Sie so viel wie möglich außerhalb des Playbooks zu tun und schreiben Sie nur die Orchestrierungslogik in das Playbook. Hier sind ein paar Beispiele, wie Sie es mit der Option --get von git machen können.

%Vor%     
Kashyap 20.03.2015 22:07
quelle

Tags und Links