2017-03-07 7 views
0

Ich bin selbstlernend Ansible mit YAML. Ich habe einen kleinen Test geschrieben, um den Hostnamen in meiner Umgebung zu testen.YAML Syntaxfehler (Ansible 2.2.1.0)

--- 
    - hosts: all 
     tasks: 
     - name: get server hostname 
      command: hostname 

aber als ich ansible-playbook playbooks/hostname.yml lief es gab mir den Fehler unten:

ERROR! Syntax Error while loading YAML. 


The error appears to have been in '/home/ansible/work/ansible/playbooks/hostname.yml': line 5, column 1, but may be elsewhere in the file depending on the exact syntax problem. 

The offending line appears to be: 

     - name: get server hostname 
     command: hostname 
^ here 

ich doppelt geprüft habe es keine zusätzliche neue Linie ist. Auch wenn ich entferne

name: get server hostname 

Es funktioniert völlig in Ordnung für mich. Könnte jemand darauf hinweisen, was dieses Problem verursachen könnte?

+0

Bitte bestätigen Sie den von Ihnen geposteten Code, insbesondere die Anzahl der Leerzeichen (falls vorhanden). Also: Ist das das ganze Spielbuch? – techraf

Antwort

1

Parsing YAML reagiert empfindlich auf Einrückungen, also können Sie sowohl richtig als auch inkorrekt sein, je nachdem wie viele Leerzeichen davor stehen. Wenn Sie nicht sehr präzise waren, ist es schwer zu beantworten.

Die wahrscheinlichste Ursache für einen Fehler in Spalte 1 ist ein anderes Zeichen als Leerzeichen. Wenn es jedoch eine Registerkarte gab, würde die Fehlermeldung dies direkt anzeigen.

Verwenden Sie den folgenden Code, um Probleme zu vermeiden. Kopieren Sie es in eine neue Datei und führen Sie es erneut aus.

--- 
- hosts: all 
    tasks: 
    - name: get server hostname 
     command: hostname 

Außerdem ist Ihre Aufgabe nicht der richtige Weg, den Hostnamen in ansible zu erwerben, obwohl es funktionieren könnte.

+0

Ich verschiebe die Datei in erhabenen Text. Es zeigt, dass es eine zusätzliche Zeile nach dem Befehl gibt, was in der Linux-Shell schwer zu bemerken ist. Was wäre die beste Vorgehensweise, um YAML in der Shell zu codieren? –