앤서블 아키텍처

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 아키텍처와 동일한 구조에 오토메이션 허브를 내부에서 사용할 수 있도록 별도의 노드로 구성한다.
  • 주로 인터넷이 되지 않는 경우에 구성하는 방식이다.

 

 

정리

  1. 앤서블은 제어 노드와 관리 노드로 구성된다.
    • 커뮤니티 앤서블과 앤서블 오토메이션 플랫폼은 모두 앤서블이 설치되는 제어 노드와 그 밖의 관리 노드로 구성된다.
  2. 인벤토리는 관리 노드의 집합이다.
    • 제어 노드에는 관리 노드를 정의하고 관리할 수 있는 인벤토리가 존재한다.
  3. 플레이북은 작업을 정의해놓은 파일이다.
    • 작업을 YAML 형식에 맞춰 정의해놓은 플레이북은 인벤토리를 참조하여 인벤토리에 정의되어 있는 관리 노드에서 작업을 수행한다.
  4. 에이전트 없이 SSH를 통해 작업을 수행한다.
    • 별도의 에이전트가 없어도 작업을 수행하기 위해서, 관리 노드에 접근해 작업을 수행하기 위한 SSH 통신이 가능해야 한다.
728x90
반응형