728x90
[Ansible] Docker로 매니지드 서버(호스트) 생성하기
도커 컨테이너를 호스트 서버로 띄워 ssh 연결이 가능하게 설정해보자.
제어노드에 ansible과 docker가 설치되어 있어야 한다.
docker worker 컨테이너 생성
docker run -d -it --name work1 -p 1234:80 ubuntu
docker run -d -it --name work2 -p 1235:80 ubuntu
sudo docker ps
ssh 통신 가능하도록 도커 이미지에 ssh 설치
이전 포스팅을 확인하면 앤서블은 원격 서버와 SSH를 통해 구성 관리 및 자동화 업무를 수행한다.
따라서 ssh 통신이 가능하도록 도커 이미지에 ssh 설치를 해야한다.
docker exec -it work1 /bin/bash
apt update
apt install openssh-server vim -y
vi /etc/ssh/sshd_config
~
PermitRootLogin: yes
Port: 22
~
passwd
service ssh restart
service ssh status
sudo docker exec -it work2 /bin/bash
위와 동일하게 작업
ansible 서버에 호스트 등록
제어 노드와 매니지드 노드가 ssh 통신을 하기 위해선 hosts 파일에 docker 컨테이너의 ip 주소를 넣어줘야 한다. 작업은 제어 노드에서 진행한다.
- Docker 컨테이너 IP 확인
docker inspect work1
docker inspect work2
- ssh-copy-id
위에서 설정해준 워커 컨테이너의 root 패스워드가 필요하다.
ssh-copy-id root@172.17.0.2
ssh-copy-id root@172.17.0.3
- hosts 파일에 등록
sudo vi /etc/ansible/hosts
~
[docker]
172.17.0.2
172.17.0.3
~
- ping 확인
ansible docker -m ping -u root
도커 컨테이너와 ssh 통신을 하여 구성관리 및 자동화 작업을 수행할 수 있다 👍👍
반응형
'📚 IaC > Ansible' 카테고리의 다른 글
[Ansible] Host 서버에 Nginx 설치하기 (0) | 2023.06.10 |
---|---|
[Ansible] 앤서블 연결하기 (Ansible SSH Connect) (2) | 2023.06.09 |
[Ansible] Ansible 개요와 설치 (0) | 2023.06.07 |