Zitate zu Elementen der Liste in jinja2 hinzufügen (ansible)

8

Ich habe eine sehr einfache Zeile in der Vorlage:

%Vor%

Und ich habe eine Liste für ip:

%Vor%

Aber Anwendung will IPs mit Anführungszeichen (ip = '1.1.1.1', '2.2.2.2').

Ich kann es so machen:

%Vor%

Aber es ist sehr hässlich. Ist es eine nette Art, Anführungszeichen für jedes Element der Liste in ansible hinzuzufügen?

Danke!

    
George Shuklin 09.04.2015, 11:48
quelle

5 Antworten

2

Tatsächlich gibt es eine sehr einfache Methode, dies zu erreichen:

%Vor%

Der Filter map iteriert über jedes Element und lässt quote es verarbeiten. Danach können Sie% %% zusammenfügen.

    
Max 13.03.2018, 11:34
quelle
11

versuchen:

%Vor%

PS: ansible unterstützt ein wenig Python-Code-Ausführung innerhalb von {{}} , was ich hier missbrauche.

    
Kashyap 09.04.2015 16:08
quelle
11

Das wird funktionieren:

%Vor%

Ein benutzerdefiniertes Filter-Plugin funktioniert auch. In ansible.cfg kommentieren Sie filter_plugins aus und geben Sie einen Pfad, wo wir das einfügen

%Vor%

in einer Datei namens core.py. So . Dann kannst du einfach

verwenden %Vor%

Und es sollte Komma getrennte Liste mit jeder ip in Anführungszeichen verpackt erzeugen.

    
Zasz 11.04.2015 03:02
quelle
1

Ich habe einen benutzerdefinierten wrap Filter entwickelt

%Vor%

Wie Sie sehen können, ist der Wrapper anpassbar und standardmäßig auf "

eingestellt

Sie können es auf diese Weise verwenden

%Vor%

Haftungsausschluss : Ich bin ein Python und ansible Neuling

    
Adriano Di Giovanni 12.10.2016 12:21
quelle
0

HINWEIS Dies ist ähnlich zu Kashyaps Antwort, aber ich brauchte eine etwas andere Version: Mit ihr wird jedes Element in einem Bash-Array doppelt zitiert, z. Ergebnis sollte sein:

SOME_LIST=( "Johnny" "Joey" "Dee Dee" "Tommy" )

projects / ansible / expand_list.yml

%Vor%

projects / ansible / templates / expand_list.conf.j2

%Vor%     
Thomas Kettenbach 06.04.2018 11:50
quelle

Tags und Links