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

그리고 잘못된 구문과 들여쓰기로 인해 스크립트가 실패합니다. 확인하다이 예초보자용.

관련 정보