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 구조
* 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
'리눅스 > 개념' 카테고리의 다른 글
[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 |