Ansible로 Iac 구현하기
docker pull edowon0623/ansible-server:m1
https://hub.docker.com/r/edowon0623
ansible을 갖고 있는 docker 이미지는 다음 링크를 통해 다운 받는다.
docker run --privileged -itd --name ansible-server -p 20022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup edowon0623/ansible:latest /usr/sbin/init
Window, MacOs intel chip) Ansible 컨테이너 설치 명령어를 통해 설치한다.
그럼 이후 docker ps를 통해 image가 잘 설치된 것과
docker network inspect bridge 로 Docker 서버에 들어간 ansible ip를 확인할 수 있다.
접속 후, 다음과 같이 호스트 네임과 앤서블 버전을 성공적으로 확인할 수 있다.
Ansible은 클라이언트로 관리하고자 하는 대상을 /etc/ansible/host에서 관리하고 있다.
아까 확인한 ansible과 docker 컨테이너의 주소를 해당 폴더 내부에 넣어준다.
현재 상태를 다시 확인해보자면, 호스트에서 도커 엔진으로 ssh 접속을 하기 위해 각각 컨테이너들이 갖고 있는 포트를 다른 포트로 포워딩 시켜주고 있다.
ansible에서 다른 서버로 접속하고 싶다면, 포트포워딩이 아닌 직접 서버 주소를 통해 연결이 가능하다.
물론 접속을 할 때 id와 password는 필요하다. 하지만 매번 로그인 하긴 번거로우므로
키를 통해 id pw 입력 없이 접속할 수 있도록 설정하자
SSH 키 생성
ssh-keygen
ssh-copy-id root@[접속할 서버 IP]
명령어들을 통해 key복사를 한 후, 더이상 비밀번호 입력 없이 접속 가능한 것을 확인할 수 있다.
Ansible 서버에서 클라이언트로 명령어를 실행해 Ias를 직접적으로 실행해보자.