파일을 만들었는데,
./group_vars/all
간단한 줄이 있어요
---
ansible_user: centos
내 재고 파일 /etc/ansible/inventory
에는
[centos]
10.1.38.15
그런데 막상 사용해 보니 ansible -m ping
일반 사용자와 연결을 시도하고 있는 것을 발견했습니다.
~/cp/ansible$ ansible -vvv centos -m ping
.... stuff
"msg": "Failed to connect to the host via ssh: [email protected]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).",
"unreachable": true
ecarroll@
연결 대신 연결을 시도하는 것을 볼 수 있습니다 centos@
. 글로벌 인벤토리를 사용하면 Ansible이 -m
작동합니까?./group_vars/
답변1
~에 따르면문서화(필자의 강조):
플레이북 디렉터리
group_vars/
에 디렉터리를 추가할 수도 있습니다 .host_vars/
이ansible-playbook
명령은 기본적으로 현재 작업 디렉터리에서 이러한 디렉터리를 찾습니다. 기타 Ansible 명령(예:ansible
등ansible-console
)인벤토리 디렉토리에서만 검색group_vars/
하고 존재합니다.host_vars/
다른 명령으로 플레이북 디렉터리에서 그룹 및 호스트 변수를 로드하려면--playbook-dir
명령줄에서 이 옵션을 제공해야 합니다. 플레이북 디렉터리와 인벤토리 디렉터리 모두에서 인벤토리 파일을 로드하는 경우 플레이북 디렉터리의 변수가 인벤토리 디렉터리에 설정된 변수보다 우선 적용됩니다.
따라서 이러한 변수를 명령 자체에 제공해야 합니다.
ansible -m setup 10.1.38.15 -e ansible_user=centos
또는,
ansible -u centos -m setup 10.1.38.15