2016-07-12 8 views
2

Wenn zufällig generierte Passwörter in einem ansible Gewölbe speichern, habe ich keine Probleme, wenn das Passwort ein/(Schrägstrich, Schrägstrich) enthältEncode slash/in ansible YAML-Datei

Nach Yaml Spec 1.2, wenn bei druckbaren ASCII-Zeichen suchen , Sollte ich doppelte Anführungszeichen, Backslash und Schrägstrich mit einem Backslash umgehen.

Ich habe das versucht, aber ich bekomme einen Parse-Fehler.

Linie aus dem Tresor Datei

test: "a<>?x\/x.,:;'-=_+b*()c&d{}\"e^f[][email protected]%h\\i$j" 

Fehler:

fatal: [127.0.0.1]: FAILED! => {"failed": true, "msg": "Syntax Error while loading YAML.\n\n\nThe error appears to have been in 'False': line 14, column 13, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\n(could not open file to display line)"} 
+2

Welchen Fehler haben Sie, wenn Sie nicht Schrägstrich entkommen? Wie 'test:" a <>? X/x.,:; '- = _ + b *() c & d {} \ "e^f []! @ G% h \\ i $ j" ' –

+1

gerade versucht und du hast Recht, kein Entkommen nötig – jdog

Antwort

6

ansible Python ist und verwendet daher PyYaml. PyYaml implementiert YAML 1.1, nicht 1.2. In YAML 1.1 ist der Schrägstrich kein escapable Zeichen (während es in 1.2 ist).

Den Schrägstrich nicht verlassen. Es ist kein spezielles Zeichen in YAML und muss daher nicht entfernt werden. YAML 1.2 hat aufgrund der JSON-Kompatibilität nur eine Escape-Sequenz hinzugefügt.

Wenn Sie alltogether die fiesen Flucht Fragen entkommen wollen, verwenden Block Skalare:

test: |- 
    a<>?x/x.,:;'-=_+b*()c&d{}"e^f[][email protected]%h\i$j 

Sie brauchen nichts dort zu entkommen.