Ansible 소개
Ansible 이란
- python 으로 구현된 오픈소스 IT 자동화 도구
- 서버 설정, SW 배포, 복수의 호스트의 자동화 구성관리 도구
.yaml (발음 상 '얌') 스크립트 파일을 만들어 사용
Ansible 특징
- Agent-less
클라이언트 프로그램을 호스트에 설치할 필요가 없음
필자의 경우, chef / puppet / saltstack 등을 고려하였으나, Agent 설치가 필요없는 Ansible을 선택하여 공부함.
ssh 접속 가능한 호스트는 ansible 을 통하여 태스크의 실행 가능
- 이해하기 쉬움
chef 의 경우 cookbook, puppet 은 manifest 를 통해 스크립트가 실행, Ansible 은 위에서 설명한 .yaml 파일을 통해 실행
스크립트 구성이 비교적 간단하며, 이해하기 쉬움
- 다양한 모듈의 지원
google 검색만으로도 굉장히 많은 모듈을 지원함.
- 멱등성(idempotence)
하나의 .yaml 파일 스크립트를 몇번을 반복해도 결과는 동일하게 출력 됨 >> 결과가 변하지 않음
- 애드훅(Ad-hoc)
ansible 명령 단일 모듈로 실행하는 명령이 존재
- Ansible 환경
Ansible 을 실행하는 실행 호스트 (메인) 와 태스크를 실행하는 대상호스트 가 있음
Ansible 의 설치는 실행 호스트(메인) 에만 필요하며, 대상호스트는 설치가 불필요 함
python 2.4 버젼 이상 설치 필요
- Ansible 호스트의 실행 환경 조성
기본적으로 cli 환경에서 실행하며, 직관성을 높여주는 gui tool 이 여럿 나와 있음
- Ansible 의 구성
ansible
inventory : 대상 호스트 참조 (어디에서 실행을 할 것인가? 대상이 누구인가?)
module : 무엇을 실행 할 것인가
playbook : 어떻게 실행할 것인가
- 이해를 하는 이번 장에서는 이론적인 개념에 대해 위와 같이 서술해 보았으며, 다음 챕터에서부터 본격적으로 실습을 병행하여 진행될 예정입니다. 상투적인 기본 내용은 되도록 넣지 않을 예정이며, 실제 실무에서 응용하여 사용할 수 있는 부분을 예제로 포스팅 할 계획입니다.
감사합니다.