2017-12-17 3 views
0

I wie unten eine Datei Daten:Wie werden Daten bis zu Trennzeichen aus einer Datei in ansible zuzugreifen und Daten zu einem Variablen und Schleife Textbuch zuweisen nach den Variablen

[prod] 
product=Admin;Financial;Hrm 

Wenn ich versuche, Dateidaten I zuzugreifen bekomme eine komplette Zeile, wie Admin;Financial;Hrm, aber für die erste Schleife muss ich nur Admin nehmen, und für die zweite Schleife sollte ich Financial bekommen und für die dritte Schleife sollte ich die hrm bekommen.

Und ich Zugriff auf die Dateidaten und einer Variablen zugewiesen wie:

- set_fact: product={{ lookup('ini', 'product type=prod file=vars.properties') }}" 

Und meine unten Playbooks sollte wie auf das Produkt

Die Spielbücher sind Accroding Schleife unterhalb

- name: This task is to loop ansible playbook according to inputs with delimiters 
    debug: msg="{{product}}" 

- include: sudo ansible-playbook create_new_env_adm.yml --extra-vars "Release=3.11.1" 
    when: 
    - '"appfolder" == "ADM"' 
    - '"product"=="Admin"'` 

- include: sudo ansible-playbook create_new_env_fin.yml --extra-vars "Release=3.11.2" 
    when: 
    - '"appfolder" == "fin"' 
    - '"product"=="Financial"'` 

- include: sudo ansible-playbook create_new_env_hrm.yml --extra-vars "Release=3.11.3" 
    when: 
    - '"appfolder" == "hrm"' 
    - '"product"=="Hrm"' 
+0

Es ist nicht direkt mit der Frage verbunden, aber ich glaube nicht, dass der Lookup-Plugin-Aufruf mit 'type = prod' mit der von Ihnen geposteten Beispieldatei funktioniert. Macht es? · Auch nicht verwandt, aber die ganze Idee scheint eine etwas seltsame Umsetzung. · Schließlich erwähnen Sie einige Schleifen im Titel und im Körper, aber keine Schleife ist im Code, nicht einmal eine Voraussetzung für eine Schleife. – techraf

Antwort

1

Beispielsyntax (split operator zum Konvertieren der Zeichenfolge in eine Liste und containment test zum Überprüfen, ob ein Element in der Liste ist):

when: 
    - "'Admin' in product.split(';')" 

Sie könnten .split auf die Variablendefinition für eine bessere Lesbarkeit des Codes verschieben möchten.

+0

Danke @ techraf, 'wenn: '' Admin 'in product.split ('; ')'' hat für mich gearbeitet. – monu

+0

Bitte werfen Sie einen Blick in die Hilfe: [Fügen Sie keinen Kommentar zu Ihrer Frage oder zu einer Antwort hinzu, um "Danke" zu sagen.] (Http://stackoverflow.com/help/someone-answers) – techraf

Verwandte Themen