/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/hosts
root
root
$HOME
/etc/ansible/hosts
다시 시도해 보세요.
ansible-playbook --syntax-check --list-tasks -i /etc/ansible/hosts ./nginx.yml
그리고 잘못된 구문과 들여쓰기로 인해 스크립트가 실패합니다. 확인하다이 예초보자용.