본문 바로가기
그 외

[Ansible] 가상머신 간 ssh 연결하기 (~/.ssh/config 이용)

by Hindsight.. 2020. 9. 28.

앤서블 튜토리얼 단계를 따라하며 겪은 것을 공유하고자 한다.

 

보통의 앤서블 튜토리얼에서는 새로운 두 개의 가상 OS로 시작한다.

 

앤서블 컨트롤러 역할의 서버에서 ssh-keygen으로 키를 생성하고, ssh-copy-id [원격 계정]@[원격 ip] 의 형태로 키를 복사하곤 하는데,

나는 여기서부터 막혔다. 그 이유는 두 클라우드 플랫폼의 프리티어...를 이용하고있었기 때문에 네이버 클라우드 플랫폼(NCP)과 AWS를 사용하고있었다. 따라서 두 플랫폼 모두 접속을 위해 각각 다른 ssh키를 사용하고 있는 상황이었다.

 

문제는 컨트롤러 서버에서 원격 서버로 접속할 때 ssh-copy-id를 하면 접속할 때 ssh키가 필요해 복사가 되지 않았고, ansible all -m ping 도 날릴 수 없었다.
(여기서 컨트롤러 또는 원격의 플랫폼은 중요하지않다)

 

물론 수동으로 키를 복사해 주는 방법도 있지만, 내 기준에서 더 편했던 방법은 접속할 때 매번 사용했던 ~/.ssh/config 등록이었다.

Host 접속명
	HostName 아이피
    User 계정명
    Port 포트번호
    IdentityFile ssh키 파일경로

이와 같이 config를 생성해주고 /etc/ansible/hosts 에도 아이피가 아닌 config의 접속명을 입력해주면, (awsec2가 접속명)

ansible all -m ping 도 잘 먹는다.

 

 

* 추가

 

키 교환 없이 테스트 할 때는

ansible all -m ping -k => -k 옵션을 통해 계정의 비밀번호를 입력하고 테스트할 수 있다.