[Ansible] Ansible의 기본 개념
본문 바로가기
IT 이야기/Ansible

[Ansible] Ansible의 기본 개념

by 찬찬이 아빠 2020. 4. 14.
반응형

Ansible의 환경설정, 배포를 가능케 하는 언어입니다.
리모트 서버에 접속해서 무언가를 시행시키는 정책을 기술합니다.

 

Yaml 문법으로 정책이 기술되어 있으며 좀 더 고급 단계에서는 로드밸런서를 모니터링하는 복잡한 환경에서 사용할 수 있도록 합니다. 각 playbook은 하나 또는 하나 이상의 ‘play’를 두게 됩니다. Play의 목적은 여러 호스트들에 잘 정의된 ‘role’과 ‘task’를 매핑하는 역할을 합니다.


Task는 ansible 모듈의 호출을 의미합니다. Role을 좀 더 편하게 관리하기 위해서 미리 정의된 yaml 파일을 include을 하는 것이 가능 합니다.

또한 host inventory 파일에 정의한 서버 그룹별로 각각 나누어 provision 할 수 있도록 할 수 있습니다. 서버당 디렉터리를 나누어서 각각의 설정 정보가 정의된 파일을 읽어 설치하게 합니다.

 

 

 1. Inventory

remote server에 대한 meta 데이터를 기술하는 파일입니다.
인벤터리는 앤서블에 의해 제어되어 Infrastructure as a Code의 대상이 될 서버들의 목록을 정의하는 파일로 일반적으로 hosts 파일에 정의해 사용합니다.

 

인벤토리에는 여러 서버들의 접속 정보 (SSH 접근 IP, 포트, 리눅스 사용자) 등을 정의합니다.

기본 파일은 /etc/ansible/hosts를 읽게 하거나, 따로 inventory파일을 만들고 옵션을 주어 동작하게 할 수 있습니다.

만약 고정 IP를 가지고 있고, host 파일 안에 들어가 있지 않는 서버가 있다면 설정 파일을 만들 수 있고 테스트 환경을 만들 때 유용합니다.

 

 2. Playbooks

설정을 관리가호 다수의 머신에 대한 배포 시스템에 대한 기본적인 단위. 복잡한 형태의 배포에 매우 적합합니다.
설정을 정의할 수 있으며 특정머신의 집합을 오가며 다른 작업을 수행하도록 수동으로 작업 순서를 설정하는 것도 가능합니다. 이 때의 작업은 동기 또는 비동기로 수행할 수 있습니다.

 

/usr/bin/ansible명령을 통해서 AD-HOC 테스크를 실행하는 것에 반해 PLAYBOOK은 소스 컨트롤을 통해 보관하거나 사용자의 설정을 내보내거나 원격 시스템을 구성,보장디는데 더욱 적합합니다.

 

 

반응형

댓글