티스토리 뷰

반응형

Chapter 1. Red Hat Ansible Automation Platform 환경에서 자동화 메시 계획

이 글은 Ansible Automation Platform 환경에서 Automation Mesh 배포를 계획하는 데 도움이 되는 정보가 안내합니다. 다음 섹션에서는 automation mesh 토폴로지를 설계하는 방법에 대한 예제를 제공하는 것 외에도 automation mesh를 구성하는 개념을 설명합니다. 자동화 메시를 배포할 수 있는 다양한 방법을 설명하기 위해 간단한 토폴로지에서 복잡한 토폴로지 예제가 포함되어 있습니다.

1.1. automation mesh란?

automation mesh 는 기존 네트워크를 사용하여 서로 P2P 연결을 설정하는 노드를 통해 대규모로 분산된 작업자 collection에 작업을 쉽게 배포하기 위한 오버레이 네트워크입니다.

Red Hat Ansible Automation Platform 2는 Ansible Tower 및 격리된 노드를 Automation Controller 및 Automation Hub로 대체합니다. Automation Controller는 UI, Restful API, RBAC, 워크플로 및 CI/CD 통합을 통해 자동화를 위한 control plane을 제공하는 반면, Automation Mesh는 컨트롤 및 실행 레이어를 형성하는 노드를 설정, 검색, 변경 또는 수정하는 데 사용할 수 있습니다.

자동화 메시는 다음을 소개합니다.

  • 독립적으로 확장되는 동적 클러스터 용량으로 downtime을 최소화하면서 노드를 생성, 등록, 그룹화, 그룹 해제 및 등록 해제할 수 있습니다.
  • 컨트롤 플레인 용량과 독립적으로 플레이북 실행 용량을 확장할 수 있는 컨트롤 및 실행 플레인 영역을 분리를 합니다.
  • 대기 시간에 탄력적이며 중단 없이 재구성 가능하며 중단이 발생할 경우를 대비하여 다른 경로를 선택하도록 동적으로 재라우팅되는 배포를 선택합니다. 메쉬 라우팅 변경를 변경한다는 것입니다.
  • FIPS(연방 정보 처리 표준)를 준수하는 양방향, 다중 도약 메시 통신 가능성을 포함하는 연결입니다.

 

1.2. Control plane과 execution plane

Automation Mesh는 고유한 노드 유형을 사용하여 Control planes과 execution plane을 모두 생성합니다. Automation Mesh 토폴로지를 설계하기 전에 Control planes과 execution plane과 해당 노드 유형에 대해 자세히 알아보십시오.

1.2.1. Control Plane

하이브리드 및 제어 노드로 구성됩니다.

프로젝트 업데이트 및 관리 작업 외에도 웹 서버 및 작업 디스패처와 같은 지속적인 자동화 컨트롤러 서비스를 실행합니다.

  • Hybrid Node
    • 프로젝트 업데이트, 관리 작업 및 ansible-runner과 같은 자동화 컨트롤러 런타임 기능을 담당하는 컨트롤 플레인 노드의 기본 노드 유형
  • Control Node
    • 프로젝트 및 인벤토리 업데이트와 시스템 작업을 실행하지만 일반 작업은 실행하지 않습니다. 이러한 노드에서는 실행 기능이 비활성화됩니다.

1.2.2. Execution plane

Control Plane을 대신하여 자동화를 실행하고 제어 기능이 없는 Execution Node로 구성됩니다. 홉 노드는 통신 역할을 합니다. Execution Plane의 노드는 사용자 공간 작업만 실행하고 Control Plane에서 높은 대기 시간으로 지리적으로 분리될 수 있습니다.

  • Execution nodes
    • Execution Node는 podman 격리를 사용하여 ansible-runner에서 작업을 실행합니다. 이 노드 유형은 Isolate Node(AAP 1.x 작동 방식?)와 유사합니다.
  • Hop nodes
    • SSH의 점프 호스트와 유사하게 홉 노드는 트래픽을 다른 Execution Node로 라우팅합니다. 홉 노드는 자동화를 실행할 수 없습니다.

1.2.3. Peers

피어 관계는 노드 간 연결을 정의합니다. Inventory 내용 중 [automationcontroller](와 [automationcontroller:vars]) 및 [execution_nodes](와 [execution_nodes:vars]) 그룹을 사용하여 피어를 정의할 수 있습니다.

1.2.4. Automation mesh node 유형 정의

인벤토리 그룹에서 할당한 기본값이나 node_type 호스트 변수를 사용하여 노드 유형을 정의할 수 있습니다. 인벤토리 그룹의 일부로 또는 인벤토리 vars 그룹 내에서 node_type을 지정합니다. 이 섹션에서는 인벤토리 파일에서 노드 타입을 정의하는 방법의 예시를 제공합니다.

[execution_nodes]의 노드는 기본적인 실행의 node_type입니다. 아래 예시인 ex-1을 참고하면, node_type=control 값을 통해 Hybrid Node 타입을 Control Node 타입으로 재정의할 수 있습니다. node_type=hop을 통해 control node 타입을 hop node 타입으로 재정의할 수 있습니다.

Hybrid node(ex-1)

[automationcontroller]의 노드는 기본적으로 Hybrid Node 유형입니다. 아래 예에서는 단일 Hybrid Node를 생성합니다.

[automationcontroller]
control-plane-1.example.com

Control node(ex-2)

node_type=control을 사용하여 Hybrid Node 타입을 Control node로 변환합니다.

[automationcontroller]
control-plane-1.example.com node_type=control

Execution node

`[execution_nodes]` 인벤토리 그룹의 노드는 기본적으로 타입이 control node입니다. 아래 예에서는 단일 control node를 생성합니다.

[execution_nodes]
execution-node-1.example.com

Hop node

node_type=control을 사용하여 control node를 hop node로 변환합니다.

[execution_nodes]
execution-node-1.example.com node_type=hop

Peer끼리 연결

`peers=` 호스트 변수를 사용하여 노드 간에 연결을 할 수 있습니다. 다음 예에서는 control-plane-1.example.com을 execution-node-1.example.com에 연결하고 execution-node-1.example.com을 execution-node-2.example.com에 연결합니다.

[automationcontroller]
control-plane-1.example.com peers=execution-node-1.example.com

[automationcontroller:vars]
node_type=control

[execution_nodes]
execution-node-1.example.com peers=execution-node-2.example.com
execution-node-2.example.com

추가적인 문서

 

원본 문서

 

혹시 궁금한 부분을 질문하신다거나 틀린부분 혹은 조언을 해주시면 감사히 받겠습니다.

지금까지 읽어주셔서 감사합니다.

 

반응형
댓글