[Ansible] Ansible이란?
본문 바로가기
IT 이야기/Ansible

[Ansible] Ansible이란?

by 찬찬이 아빠 2020. 4. 13.
반응형
  1. Ansible 이란?

  • Provision & configuration management tool
  • Python Github project 중 상위 랭킹 (6위)
  • Enterprise 버전은 따로 존재하며 ansible 오픈 소스에 UI 와 일부 utility 추가한 상용 버전
  • 오픈 소스 버전 (GPL)
  • 해커 뉴스 분석을 보면 ansible이 많이 Mention 되어지고 있음

 

Ansible은 오픈 소스 소프트웨어 프로비저닝, 구성 관리, 애플리케이션 전개 도구입니다. 수많은 유닉스 계열 시스템에서 실행되며 유닉스 계열 운영 체제 및 마이크로소프트 윈도우의 구성이 가능합니다. 시스템 구성을 기술하기 위해 자체 선언형 언어를 포함하고 있습니다.

 

 

  2. Ansible을 선택하는 이유
  • SSH 통신, 빠른 provision 이 가능합니다.
  • 추후 상용 환경에서 사용할 때 agent 기반이면 방화벽 이슈, agent 데몬 관리라는 불편한 점이 존재합니다. (agent 방식의 장점도 물론 존재합니다. 확장성, 대규모 provision을 할 경우 매우 효과적입니다. 대신 서버와 통신하는 부분이 고도화되기 때문에 빠르고 간단한 provision을 할 수 없습니다.
  • 자동 배포 환경이 쉽습니다.
  • 개발 가능성이 높은 오픈소스 입니다.
  • 멱등성을 제공합니다.

● 멱등성(idempotent)이란 ?

연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 멱등성 이라고 합니다.

 

●Ansible 툴에서의 멱등성이란 ?

여러 번 ansible 툴을 사용하더라도 동일한 결과값을 나올 수 있도록 제공되는 형태여야 합니다.
매번 다른 결과가 나오거나 에러가 나온다면 비 멱등성하다고 할수 있습니다.
Ansible 툴의 거의 대부분의 모듈은 멱등성을 제공합니다. 또한 멱등성을 제공하기 위해서 조건절을 제공하고 있습니다.
예를 들면, 처음 ansible 스크립트를 실행후 다시 실행을 하면 상황에 따라서는 파일이 append가 될 수 있습니다.
그러나 멱등성의 원칙은 언제나 실행은 해도 결과가 동일하게 나옵니다. 또한 파일/디렉터리를 생성 또는 삭제하는 ‘create’ , ‘remove:’ 같은 ansible 모듈을 실행 할 때 ‘when;’ 조건절을 이용할수 있습니다. 대부분의 ansible 모듈이 멱등성을 보장한다는 의미는 상태를 파악할 수 있다는 의미를 가지게 됩니다.

 

  Ansible Link
반응형

댓글