Ansible Playbookの構文チェックの問題

Ansible Playbookの構文チェックの問題

/etc/ansible/hostsに次の詳細があります。

[dev] 10.13.212.32

次のようにホストにpingを送信できます。

# ansible dev -m ping

出力:

[root@localhost ~]# ansible dev -m ping
10.13.212.32 | SUCCESS => {
    "changed": false,
    "ping": "pong"

*.yml ファイルの構文を確認するとき。

# ansible-playbook --syntax-check --list-tasks -i hosts ./nginx.yml

または

# ansible-playbook nginx.yml --check**
 [WARNING]: Unable to parse /root/hosts as an inventory source

 [WARNING]: No inventory was parsed, only implicit localhost is available

 [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

ERROR! Syntax Error while loading YAML.
  did not find expected '-' indicator

エラーは "/root/nginx.yml": 3 行目の 1 列目にあるように見えますが、正確な構文の問題によっては、ファイルの他の場所にある可能性があります。

問題のある行は次のとおりです。

- name: install and start nginx
hosts: localhost
^ here

この問題を解決するのに役立ちます。

ベストアンサー1

エラーはファイルがないことです/root/hosts

ansible-playbook --syntax-check --list-tasks -i hosts ./nginx.yml

-iスイッチ()を使用すると、ファイルの代わりにファイル(で実行されているため)--inventory-fileを指します。/root/hostsrootroot$HOME

/etc/ansible/hosts

もう一度お試しください。

ansible-playbook --syntax-check --list-tasks -i /etc/ansible/hosts ./nginx.yml

そして、間違った構文とインデントが原因でスクリプトが失敗します。確認するこの例初心者向け。

おすすめ記事