2017-03-07 10 views
0

私は自己学習していますYAMLと関係があります。自分の環境でホスト名をテストする小さなテストを書いた。私は二重の余分な改行がありませんチェックしましたYAML構文エラー(Anabilities 2.2.1.0)

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 

:私はansible-playbook playbooks/hostname.ymlを実行したときに

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

が、それは私に以下のエラーが発生しました。また、取り除くとき

name: get server hostname 

それは私のために完全に正常に動作します。誰でもこの問題を引き起こす可能性があることを指摘できますか?

+0

あなたが投稿したコード、特に前にあるスペースの数(ある場合)をご確認ください。また、これはプレイブック全体ですか? – techraf

答えて

1

YAMLの解析は字下げに敏感なので、あなたが投稿したものは正面のスペースの数に応じて正解と不正確の両方になります。あなたが非常に正確でない限り、答えるのは難しいです。

カラム1のエラーの原因としては、スペース以外の文字がありますが、タブがある場合はエラーメッセージに直接そのことが示されます。

問題を回避するには、次のコードを使用します。それを新しいファイルにコピーして再実行します。

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

それがうまくいくかもしれないが、また、あなたのタスクは、Ansibleでホスト名を取得するない正しい方法です。

+0

ファイルを崇高なテキストに移動します。それはコマンドの後に余分な行があることを示しています。これはLinuxシェルでは気づきにくいものです。シェルでYAMLをコード化するベストプラクティスは何でしょうか? –