Warum ersetzt ansible in Templates immer doppelte Anführungszeichen durch einfache Anführungszeichen?

8

Ich versuche, Dockerfiles mit Ansible-Vorlage zu erzeugen - siehe die Rollenquelle und die Vorlage in Ansible Galaxy und Github

Ich muss eine Standard-Dockerfile-Zeile wie folgt generieren:

%Vor%

Wenn ich dies jedoch in die Eingabedatei lege:

%Vor%

Es endet wie folgt:

%Vor%

und ich verliere das "(was die Dockerfiles nutzlos macht)

Irgendwelche Hilfe? Wie kann ich Jinja davon überzeugen, "mit" nicht zu ersetzen? Ich habe \ ", | safe Filter, sogar {% row%} - versucht macht es einfach weiter!

Aktualisierung: So reproduzieren Sie das Problem:

Gehen Sie zur Rolle peruncs.docker von galaxy.ansible.com oder Github (link oben) Schreiben Sie ein einfaches Playbook (sagen Sie demo.yml ) mit dem folgenden Inhalt und führen Sie Folgendes durch: ansible-playbook -v demo.yml . Mit der Option -v können Sie das temporäre Verzeichnis anzeigen, in dem die generierte Dockerdatei mit dem fehlerhaften Inhalt enthalten ist, damit Sie sie untersuchen können. Es ist nicht wichtig, das Docker-Image zu erstellen. Versuchen Sie einfach, die Docker-Datei richtig zu lesen.

%Vor%

Vielen Dank im Voraus!

    
Hristo Stoyanov 12.08.2015, 15:43
quelle

1 Antwort

10

Etwas in Ansible scheint das als gültiges Python zu erkennen, also wird es in eine Python-Liste umgewandelt und dann mit Pythons str() serialisiert, weshalb Sie die einfachen Werte erhalten.

Eine einfache Möglichkeit, dies zu umgehen, besteht darin, am Anfang des Wertes ein Leerzeichen anzubringen, das verhindert, dass es in Python konvertiert wird:

%Vor%

Dies führt zu:

%Vor%     
larsks 14.08.2015, 16:06
quelle

Tags und Links