#2. Ansible 의 이해 (Ansible 이란?)

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 : 어떻게 실행할 것인가

  • 이해를 하는 이번 장에서는 이론적인 개념에 대해 위와 같이 서술해 보았으며, 다음 챕터에서부터 본격적으로 실습을 병행하여 진행될 예정입니다. 상투적인 기본 내용은 되도록 넣지 않을 예정이며, 실제 실무에서 응용하여 사용할 수 있는 부분을 예제로 포스팅 할 계획입니다.

감사합니다.

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Logo
Center