728x90
반응형
앤서블 아키텍처
- 앤서블 아키텍처는 크게 2가지로 나뉜다.
- 커뮤니티 앤서블 : 오픈소스 형태로 운영체제가 리눅스라면 어디에나 설치해서 사용 가능
- 레드햇 앤서블 오토메이션 플랫폼 : 레드햇 서브스크립션을 통해 사용 가능
커뮤니티 앤서블
- 앤서블 아키텍처는 제어 노드와 관리 노드라는 2가지 유형의 시스템으로 구성된다.
- 앤서블은 제어 노드에 설치되어 실행되고 앤서블이 실행되기 위해서는 파이썬이 기본적으로 설치되어 있어야 한다.
- 앤서블 안에는 다양한 모듈과 플러그인이 함께 설치되어 있으며, 앤서블이 관리하는 노드 정보를 저장하고 있는 인벤토리와 관리 노드에서 수행될 작업 절차가 작성되어 있는 플레이북이 존재한다.
제어 노드(Control Node)
- 앤서블이 설치되는 노드로 운영체제가 리눅스라면 제어 노드가 될 수 있다.
- 앤서블은 파이썬 모듈을 이용하기 때문에 앤서블을 설치하고 실행하려면 파이썬이 함께 설치되어 있어야 한다.
관리 노드(Managed Node)
- 앤서블이 제어하는 원격 시스템 또는 호스트를 의미한다.
- 관리 노드는 리눅스가 설치된 노드일 수도, 윈도우즈가 설치된 노드일 수도 있다.
- 퍼블릭 클라우드나 프라이빗 클라우드 시스템에서 생성한 가상 서버가 될 수도 있다.
- 제어 노드와 SSH 통신이 가능해야 하며, 파이썬이 설치되어 있어야 한다.
인벤토리(Inventory)
- 제어 노드가 제어하는 관리 노드의 목록을 나열해놓은 파일이다.
- 앤서블은 인벤토리에 사전에 정의되어 있는 관리 노드에만 접근할 수 있다.
- 인벤토리 목록은 관리 노드의 성격별로 그룹핑할 수 있다.
모듈(Module)
- 앤서블은 관리 노드의 작업을 수행할 때 SSH를 통해 연결한 후 '앤서블 모듈'이라는 스크립트를 푸시해서 작동한다.
- 대부분의 모듈은 원하는 시스템 상태를 설명하는 매개 변수를 허용하며, 모듈 실행이 완료되면 제거된다.
플러그인(Plugins)
- 앤서블의 핵심 기능을 강화한다.
- 모듈이 대상 시스템에서 별도의 프로세스로 실행되는 동안 플러그인은 제어 노드에서 실행된다.
- 앤서블의 핵심 기능(데이터 변환, 로그 출력, 인벤토리 연결 등)에 대한 옵션 및 확장 기능을 제공한다.
플레이북(Playbook)
- 관리 노드에서 수행할 작업들을 YAML 문법을 이용해 순서대로 작성해놓은 파일이다.
- 앤서블은 플레이북을 활용하여 관리 노드에 SSH로 접근해 작업을 수행한다.
- 플레이북은 자동화를 완성하는 가장 중요한 파일이며 사용자가 직접 작성한다.
앤서블 오토메이션 플랫폼
- 커뮤니티 앤서블과 레드햇의 앤서블 오토메이션 플랫폼의 주요 컴포넌트는 동일하다.
- 앤서블 오토메이션 플랫폼은 인벤토리, 제어 노드에 대한 인증 정보, 실행 환경 등을 관리하는 CMDB(Configuration Management DataBase)가 존재한다.
- 이런 자원들을 관리하는 웹 UI가 존재하며, REST API를 제공한다.
- 앤서블 플레이북은 사용자가 외부에서 작성한 내용을 앤서블 관리 앱 UI를 통해 가져올 수 있다.
- 호스트, 어플리케이션 및 서비스, 퍼블릭 및 프라이빗 클라우드, 네트워킹과 같은 다양한 환경에 접속하여 플레이북에 작성된 작업을 수행한다.
- 레드햇 앤서블 오토메이션 플랫폼은 3가지 필수 컴포넌트와 1가지 옵셔널 컴포넌트로 구성된다.
- 오토메이션 컨트롤러 : 앤서블 타워로 불리던 앤서블 관리 앱 UI
- 실행 환경 : 앤서블 모듈과 플러그인이 존재하는 컨테이너 기반의 실행 환경
- PostgreSQL : 인벤토리, 인증 정보, 실행 환경 등의 메타데이터를 관리하는 CMDB
- 오토메이션 허브(옵션) : 레드햇에서 기술지원을 받을 수 있는 컬렉션 제공 서비스
- 이 요소들을 어떻게 구성하느냐에 따라 3가지 아키텍처로 분류한다.
- All in One
- AAP(Automation Ansible Platform) using External DB
- Private Automation Hub
All in One 아키텍처
- 가장 기본적인 구성 아키텍처로 오토메이션 컨트롤러, 실행 환경, PostgreSQL이 모두 한 노드에 구성된다.
AAP using External DB
- PostgreSQL이 별도의 노드로, 오토메이션 컨트롤러와 실행 환경이 같은 노드로 구성된다.
- 오토메이션 컨트롤러는 별도로 구성된 PostgreSQL과 연동되어 앤서블 관리 웹 UI 서비스를 제공한다.
Private Automation Hub
- AAP using External DB 아키텍처와 동일한 구조에 오토메이션 허브를 내부에서 사용할 수 있도록 별도의 노드로 구성한다.
- 주로 인터넷이 되지 않는 경우에 구성하는 방식이다.
정리
- 앤서블은 제어 노드와 관리 노드로 구성된다.
- 커뮤니티 앤서블과 앤서블 오토메이션 플랫폼은 모두 앤서블이 설치되는 제어 노드와 그 밖의 관리 노드로 구성된다.
- 인벤토리는 관리 노드의 집합이다.
- 제어 노드에는 관리 노드를 정의하고 관리할 수 있는 인벤토리가 존재한다.
- 플레이북은 작업을 정의해놓은 파일이다.
- 작업을 YAML 형식에 맞춰 정의해놓은 플레이북은 인벤토리를 참조하여 인벤토리에 정의되어 있는 관리 노드에서 작업을 수행한다.
- 에이전트 없이 SSH를 통해 작업을 수행한다.
- 별도의 에이전트가 없어도 작업을 수행하기 위해서, 관리 노드에 접근해 작업을 수행하기 위한 SSH 통신이 가능해야 한다.
728x90
반응형
'Study > 앤서블(Ansible)' 카테고리의 다른 글
앤서블 플레이북 작성 및 실습 (0) | 2024.03.10 |
---|---|
앤서블 환경 설정 파일 이론 및 앤서블 접근을 위한 SSH 인증구성 (0) | 2024.03.09 |
앤서블 활용 - 인벤토리 이론 및 실습 (0) | 2024.03.09 |
앤서블 실습 환경 준비 (0) | 2024.02.26 |
앤서블이란 (0) | 2024.02.25 |