posted by 귀염둥이채원 2018. 4. 3. 01:30

# Ansible이란

Ansible은 Python으로 구현된 오픈소스 IT 자동화 도구이다. 서버 설정, 소프트웨어 배포, 복수의 호스트를 상호 협력해서 동작시키는 오케스트레이션 등 다양한 태스크를 자동화 하는 도구이다. 비슷한 도구로 Chef, Puppet이 있다.


# Ansible의 특징

1. Agent-less

Chef나 Puppet 등은 태스크를 실행하는 호스트에 에이전트를 설치해야 한다 (에이전트 설치 자동화는 가능). Ansible은 이러한 에이전트 설치 없이 SSH 접속이 가능하면 대부분의 환경에서 실행 가능하다.


2. 이해하기 쉽다

SSH로 호스트에 접속해서 스크립트를 실행하는 단순한 아키텍처이다. 또한 실행 태스크를 Playbook이라고하는 YAML 형식의 파일로 기술한다.


3. 멱등성

같은 조작을 몇 번이고 수행하더라도 같은 결과가 얻어지는 성질을 멱등성이라 한다.

서버의 최종 모습을 모듈로 지정해서 현재 상황에서 최종 모습으로 상태를 변화시키도록 설계되어 있다.


# Playbook

Ansible에서 대상 호스트에 대한 태스크를 기술하는 YAML파일. 복수의 모듈을 모아서 실행할 때 사용.


# Ansible 이용 환경

Ansible의 명령을 실행하는 실행 호스트와 태스크를 실행하는 대상 호스트가 있다.

실행 호스트에는 Ansible을 설치해야한다.

대상 호스트에는 Ansible을 설치할 필요가 없고, SSH로 접속 할 수 있어야 하고 Python 2.x(2.4이상. 2.5 이하에서는 python-simplejson이 필요)이 설치되어 있어야 한다.


'Devops' 카테고리의 다른 글

CI/CD란 무엇인가?  (0) 2018.04.03
devops란 무엇인가?  (0) 2018.04.03