리눅스/개념

[LINUX] ANSIBLE (앤서블)이란?

ㅎㄷㄹㅁㅇ 2022. 2. 27. 01:01
반응형

Ansible (앤서블)

Ansible 이란? 

Ansible은 오픈소스 IT 자동화 툴입니다. 이전과 달리 데이터의 전체적인 증가로 인해 클라우드 인프라 방식으로 변하고 있습니다. 관리해야 할 대상이 많아졌고 동시다발적인 형태의 서버의 배포와 자동화가 필요해졌습니다. 이를 더 쉽고 간단하게 도와주는 것이 Ansible입니다. 프로비저닝, 구성 관리, 서버 및 애플리케이션 배포 등을 자동화합니다. 소프트웨어의 설치뿐만 아니라, Task 등록과 Server에 맞는 패치 등을 진행합니다. 

 

 

Ansible 특징

- 멱등성(Idempotency)
멱등선은 Ansible의 핵심입니다. 동일한 작업을 여러번 수행하여도 결과는 동일한 것을 말합니다. Ansible을 수십 수백번을 실행해도 동일한 결과가 나오는 것을 말합니다.
(사전적의미 멱등성(冪等性, 영어: idempotent)은 수학이나 전산학에서 연산의 한 성질을 나타내는 것으로,
연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다. )

- Agent-less
Ansible은 위에서 설명했듯이 SSH 기반으로 동작합니다. 추가로 Agent의 설치가 필요 없습니다. 
SSH를 통한 Pushing을 통해 동작합니다. 

 

 

* Agent Based / Agent less 각각의 특징
Agent Based :
실시간 모니터링 가능, 원격 ROOT 로그인 불가, 시스템 부하를 효율적으로 사용, 네트워크 부하가 적음
Agent less  :
대상 서버를 즉시 검사 할 수 있음, 소프트웨어 설치 불필요, 스캔 정책을 유연하게 적용

 

 

Ansible 구조

 

Ansible 구조

* Control Node
 - 원격으로 대상서버를 관라히는 노드
 - Ansible이 설치되는 노드
 - SSH 설치 필요
 - Python-2.6 이상 설치가 되어 있어야 함


* Managed Node(s) 
 - Ansible Control Node에 의해서 관리되어지는 노드
 - Ansible 설치가 필요 없음
 - SSH 설치 필요
 - Python-2.6 이상 설치가 되어 있어야 함

* Inventory
 - Managed Node의 List 
 - Hosts 파일 
 - Managed Node의 IP 및 정보 등을 저장 
   (default - /etc/ansible/hosts)
 - 시스템의 단위는 그룹으로 묶일 수 있음

* Playbookㅋㅋ
 - YAML 파일로 작성된 문서로 Ansible이 실행하는 파일 
 - 순서대로 진행되는 TASK들의 집합
 - 모든 서버 혹은 지정 서버에서 실행되어 짐
 - 각각의 Playbook은 한개 이상의 Play로 구성되어 있음
 - 멱등성을 유지하지 않을 경우 반드시 표시해야 함.
 
* Module
 - Ansible 내장 자동화 모듈
 - 사용자가 직접 사용하거나, Playbook을 통해 사용 함
 - Server, Network, Storage 등 다양한 모듈이 존재함(계속적으로 추가 중)

* Variables
 - Ansible 자동화 코드에 사용하는 변수
 - 우선순위에 이해가 필요함 

 

* 참고
각각의 Node들은 Python-2.6 이상 설치, SSH 설치를 필요로 합니다. 

 

 

Ref

* 참고 사이트 & 문헌
https://www.redhat.com/ko/technologies/management/ansible/what-is-ansible
What is Ansible? | Opensource.com
What is Ansible? A Tool to Automate Parts of Your Job (freecodecamp.org)
[번역] Ansible(2) inventory, Playbooks, Roles (velog.io)

 

반응형

'리눅스 > 개념' 카테고리의 다른 글

[LINUX] iscsi.service vs iscsid.service  (0) 2024.08.28
[LINUX]특수 권한 및 파일 설정  (1) 2023.12.07
[LINUX]라우팅 매트릭 및 최적 경로  (2) 2023.11.18
[오픈스택] TripleO란?  (0) 2023.03.10
[LINUX]HA Pacemaker란?  (0) 2021.01.06
TOP