IT/네이버지식인

[지식인] Linux Ansible Playbook 질문

송시 2022. 6. 22. 17:25
728x90

ansible 에서 첫 단추라면 ansible 의 마스터와 대상이 되는 client 간에 상호 통신이 되는가? 에 대한 확인이 선행되어야 한다.

 

이때 사용하는 것이 ssh 이고, OS 계정의 비밀번호를 묻지 않고 통신하기 위해 RSA pub/private key 를 통해 비밀번호를 묻지 않고 통신을 하게 된다.

**물론 OS 비밀번호를 묻는 것이 ansible 에서 잘못된 방식은 아니다.

 

어쩄든 이때 주의해야하는 몇 가지가 있다.

 

1. ssh 비밀번호 없이 사용하는 계정이 무엇인가?

2. ansible.cfg 또는 inventory 에서 remote_user에 대한 별도의 설정이 되어 있는가?

3. playbook 에 remote_user 에 대해서 구체적인 설정이 되어 있는가?

 

질문자의 경우는 ansible 을 그대로 사용하면 잘 작동하나, ansible-playbook 을 사용하면 안된다는 내용이였다.

 

이 경우는 여러 가능성 중에 /etc/ansible/ansible.cfg 과 playbook 에서 관리하는 ansible.cfg 가 별도로 있는게 아닐까 하는 의심이 되었다.

 

이 유추가 맞다면 playbook (yaml)에  remote_user 를 구체적으로 설정함으로써 해결할 수 있다고 생각을 했다.

질문

 

 
$ ansible-playbook PLAYBOOK.yaml
결과 저렇게 fatal: ~: UNREACHABLE 이라고 뜨는데
ssh 설정이 잘못된 건가요??
키젠 설정이 잘못된 건가요??
 
$ ansible all -m ping 했을 때
핑퐁이라고 뜹니다.
연결은 잘 된 거 같은데..

 

답변

permission denied 이라고 뜨네요.

ansible all -m ping 으로 실행하셨을 때 정상적으로 pong 을 받으셨다면

ansible-playbook 에서는 remote_user 설정이 다른 계정으로 되어있는게 아닐까 싶네요.

ping 모듈이 성공했던 계정이 무엇일까요? 그 계정으로

playbook 의 remote_user: 값에 넣어보세요. 아래에는 예제로 test라는 계정명으로 넣어보았습니다.

- hosts: all

remote_user: test

tasks:

그래도 안되면 현재 ansible.cfg 의 설정이 어떻게 되어있는지를 파악하셔야 할 것 같네요.

728x90