1. Ansible이란
Ansible은 여러 개의 서버를 효율적으로 관리할 수 있게 해주는 환경 구성 자동화 도구이다.
또한 IaC의 하나이다. Infra Structure As Code의 약어이다.
스크립트 형태를 가지고 Infra Structure를 관리한다.
또한 버전 관리를 통한 리소스 관리가 가능하다.
지금까지 도커 컨테이너를 기동하면서 같은 이름의 컨테이너가 있을 경우 작업 진행에 오류가 있었다.
그래서 ansible을 통해서 기존 도커에서 기동되었던 컨테이너를 중지 후 다시 기동하거나, 이미지를 다시 배포하는 용도로 쓰고자 한다.
2. 도커 이미지 설치
Ansible과 도커가 설치되어 있는 도커 이미지를 설치한다.
docker pull edowon0623/ansible-server:m1
https://hub.docker.com/r/edowon0623/ansible
3. Ansible 서버 실행
docker run --privileged -itd -p 20022:22 -p 8082:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup edowon0623/ansible-server:m1 /usr/sbin/init
4. 받은 Ansible 서버 접속
ssh root@localhost -p 20022
5. ansible 서버 도커 기동
도커 이미지 안에 설치되어 있는 도커는 기동되지 않은 상태이기 때문에 기동을 시켜주어야 한다.
systemctl start docker
6. ansible 서버 도커 기동 확인
systemctl status docker
7. ansible 버전 확인
ansible --version
8. ansible client 등록
Ansible 서버에서 관리하고자 하는 클라이언트를 등록해놓아야 한다.
vi /etc/ansible/hosts
특별한 네트워크 옵션을 주지 않았기 때문에 지금까지 실행했던 모든 도커 컨테이너들은 bridge라는 네트워크 드라이브에 연결되어 있을 것이다. 명령어를 통해 bridge 네크워크에 등록되어진 컨테이너 목록을 확인할 수 있다.
docker network inspect bridge
9. 관리 서버 자동 로그인 설정
관리하고자 하는 서버에 접속할 때마다 아이디와 비밀번호를 입력하기란 여간 귀찮은 일이다.
Ansible 서버에 만들어져있는 key값을 가지고 관리 서버에 수동 로그인 없이 자동 로그인하게 만들 것이다.
그러기 위해 홈 디렉토리에 있는 id_rsa파일에 퍼블릭/프라이빗키를 생성할 것이다.
그 후 퍼블릭 키를 상대방 서버(관리 서버)에 배포 시킬 것이다.
1) 키 값 생성
ssh-keygen
2) 상대 서버 배포
ssh-copy-id root@172.17.0.2
'INFRA > CICD' 카테고리의 다른 글
Jenkins + Ansible Playbook (0) | 2024.07.06 |
---|---|
Ansible Playbook 명령어 [파일복사 / 프로그램 다운] (0) | 2024.07.04 |
[젠킨스 설정] 다른 서버에 war 파일 복사 후 기동 (0) | 2024.06.24 |
젠킨스 SSH Server 설정 (0) | 2024.06.23 |
SSH 서버에서 사용할 수 있는 도커 컨테이너 만들기 (0) | 2024.06.23 |