오픈소스 기반의 자동화 관리 도구로 하나의 중앙 위치에서 여러 서버를 관리하고 제어한다.
SSH통신으로 호스트 서버에 접근한다.
장점
- 수행해야하는 반복적인 작업이 있을 때 사용하기 적합하다.
- 특정환경을 동일하게 만들 수 있다.
- 호스트 서버에 에이전트를 설치할 필요가 없다.
1) Controller 서버
ansible이 설치된 서버
2) 인벤토리
호스트 서버들의 목록
/etc/ansible/hosts 파일에 위치해 있음
https://runebook.dev/ko/docs/ansible/user_guide/intro_inventory
3) playbook
호스트 서버에 전달할 명령어들을 모아둔 명령어집
즉, 스크립트 파일을 말함
yaml/yml 파일 형식으로 되어 있으며 ansible playbook을 이용하면 멱등성이 보장된다.
멱등성 = 동일한 명령어를 반복적으로 수행하더라도 한번 명령어가 실행되었을 때와 동일한 결과가 나타난다
playbook은 하나 혹은 하나 이상의 play를 갖고 있고,각각의 play는 하나 이상의 tasks을
실행한다
3개의 하이픈 (-) 으로 시작한다 | |
name | 어떤 playbook인지 설명 |
hosts | playbook이 실행될 대상 |
become | 특정 사용자로 전환할지 여부 true = 루트권한 사용 O false = 루트권한 사용 X |
tasks | 수행할 작업
|
연결 방법
RSA암호화
암호화와 인증을 할 수 있는 공개 키 암호 시스템
- 키를 생성 [private key / public key]
- 호스트 서버에 public key를 복사한다
- Controll 서버에서 호스트 서버로 ssh 접속한다
- 호스트 서버에서 public key로 암호화 된 정보를 controll서버에 전달한다
controll 서버에서 암호화된 정보를 private key를 이용해 해독한다
반응형
'DevOps > Ansible' 카테고리의 다른 글
Ansible 기본 (0) | 2022.04.21 |
---|---|
[Ubuntu] Ansible-Playbook log 저장하기 (0) | 2022.03.24 |
[Ubuntu] Redis start/stop Playbook (0) | 2022.01.25 |
[Ubuntu] mongoDB start/stop Playbook (0) | 2022.01.18 |
[Ubuntu] playbook 만들기 - update, reboot, stop (0) | 2022.01.11 |
댓글