Ansible 아키텍처
Ansible은 에이전트(agent) 없이 SSH 기반으로 동작하는 자동화 도구로 중앙의 Control Node가 여러 Managed Node를 일괄 제어하는 구조를 가집니다.


핵심 구성 요소
1. Inventory (인벤토리)
Inventory는 Ansible이 관리할 대상 서버(호스트)와 그룹을 정의한 목록입니다.
주요 역할
- 관리 대상 서버 목록 정의
- 서버 그룹화 (web, db, api 등)
- 호스트 및 그룹별 변수 관리
특징
- 정적 Inventory (INI, YAML)
- 동적 Inventory (AWS, GCP, Azure 등)
- 패턴 기반 실행 대상 선택 가능
Ansible 자동화의 출발점이 되는 구성 요소
2. Modules (모듈)
Module은 Ansible에서 실제 작업을 수행하는 최소 실행 단위입니다.
주요 역할
- 패키지 설치
- 서비스 시작/중지
- 파일 복사 및 설정
- 클라우드 리소스 제어
특징
- 대부분 멱등성(Idempotent) 보장
- Python 기반 (일부는 Shell, PowerShell)
- 작업 후 자동으로 제거되는 임시 코드 방식
예시
- yum, apt
- service, systemd
- copy, template
- ec2, s3, rds
“Ansible이 실제로 일을 하는 손”
3. Plugins (플러그인)
Plugin은 Ansible의 동작 방식을 확장하거나 제어하는 구성 요소입니다.
주요 역할
- Inventory 확장 (동적 인벤토리)
- 연결 방식 제어 (SSH, local 등)
- 변수 로딩 방식 정의
- 출력 포맷 제어
대표적인 플러그인 종류
- Inventory Plugin: aws_ec2, gcp_compute
- Connection Plugin: ssh, local
- Callback Plugin: 실행 결과 출력 제어
- Lookup Plugin: 외부 데이터 조회
Ansible의 확장성과 유연성을 담당
4. API (Ansible API)
Ansible API는 Ansible의 내부 기능을 외부 시스템에서 호출할 수 있도록 제공되는 인터페이스입니다.
주요 활용처
- CI/CD 파이프라인 연동
- 자동화 포털(AWX / Ansible Tower / AAP)
- Python 기반 자동화 시스템 연계
특징
- Playbook 실행
- Inventory 조회
- 결과 수집 및 상태 관리
Ansible을 하나의 “자동화 엔진”으로 활용하게 해주는 연결 고리
'리눅스' 카테고리의 다른 글
| [draft] 리눅스 소스 컴파일 중 "c++: fatal error: Killed signal terminated program cc1plus" 에러 (0) | 2026.02.28 |
|---|---|
| [draft] Ansible 구성 설정(Configuration Settings) 파일의 우선순위에 대한 설명 (0) | 2026.02.28 |
| [draft] Ansible 동적 인벤토리 설정하는 방법(aws_es2 plugin) (0) | 2026.02.28 |
| [draft] Ansible inventory(인벤토리) 설정하는 방법 (0) | 2026.02.28 |
| [draft] CentOS 7에서 Ansible 설치 및 업그레이드하는 방법 (0) | 2026.02.28 |