2017-05-01 4 views
0

Gegeben eine Zählung, sagen wir 5, und eine Liste von Strings ['string1',string2','string3'] Ich möchte durch die Liste der Strings für die angegebene Anzahl von Zeiten. Die erwartete Ausgabe wäre ['string1',string2','string3','string1','string2'].Ansible Zyklus über eine Liste mit count

Ich denke, das ist eine ähnliche Idee, was tut , jedoch möchte ich dies in der Spielbuch als Wert für einen Schlüssel, nicht in einer Vorlage verwenden. Gibt es einen typischen Weg, dies zu erreichen? Wenn ich ein benutzerdefiniertes filter_plugin machen müsste, wäre das keine große Sache, aber ich möchte wissen, ob das Feature schon da ist.

Der eigentliche Anwendungsfall, den ich beabsichtige, besteht darin, eine bestimmte Liste von Subnetzen mit einer Anzahl von Hosts abgleichen zu können, um eine beliebige Anzahl von Hosts für die Liste der Subnetze bereitzustellen. Die resultierende Liste würde wahrscheinlich von einer with_indexed_items Schleife verwendet werden.

Antwort

2

Zum Beispiel:

--- 
- hosts: localhost 
    gather_facts: no 
    connection: local 
    vars: 
    mylist: 
     - string1 
     - string2 
     - string3 
    tasks: 
    - debug: 
     msg: "{{ mylist[item|int % 3] }}" 
     with_sequence: start=0 end=4 
+0

Das war sehr hilfreich, danke. Ich landete mit einer geringfügigen Änderung: '--- - Gastgeber: localhost gather_facts: keine Verbindung: local Vars: Zahl: 5 mylist: - Zeichenfolge1 - Zeichenfolge2 - string3 Aufgaben: - debug: msg: "{{Meine Liste [item | int% mylist | length]}}" with_sequence: start = 0 end = {{count - 1}} ' – mat