3.3. Red Hat Ansible Automation Platform Operator에서 자동화 컨트롤러를 위한 외부 데이터베이스 구성

외부 데이터베이스를 사용하여 Ansible Automation Platform을 배포하려는 사용자의 경우 인스턴스 자격 증명 및 연결 정보를 사용하여 시크릿을 구성한 다음 oc create 명령을 사용하여 클러스터에 적용할 수 있습니다.

기본적으로 Red Hat Ansible Automation Platform Operator는 Ansible Automation Platform 배포와 동일한 네임스페이스에서 관리되는 PostgreSQL Pod를 자동으로 생성하고 구성합니다. Red Hat Ansible Automation Platform Operator가 자동으로 생성하는 관리되는 PostgreSQL Pod 대신 외부 데이터베이스를 사용하여 Ansible Automation Platform을 배포할 수 있습니다.

외부 데이터베이스를 사용하면 리소스를 공유 및 재사용하고 백업, 업그레이드 및 성능 최적화를 수동으로 관리할 수 있습니다.

참고

데이터베이스 이름이 다른 경우 자동화 허브 및 자동화 컨트롤러에 동일한 외부 데이터베이스(PostgreSQL 인스턴스)를 사용할 수 있습니다. 즉, 단일 PostgreSQL 인스턴스 내에 이름이 다른 여러 개의 데이터베이스가 있을 수 있습니다.

다음 섹션에서는 Ansible Automation Platform Operator에서 자동화 컨트롤러에 대한 외부 데이터베이스를 구성하는 단계를 간략하게 설명합니다.

사전 요구 사항

외부 데이터베이스는 현재 Ansible Automation Platform 릴리스에서 지원하는 버전인 PostgreSQL 데이터베이스여야 합니다.

참고

Ansible Automation Platform 2.0 및 2.1은 PostgreSQL 12를 지원합니다.

절차

외부 postgres 인스턴스 자격 증명 및 연결 정보는 자동화 컨트롤러 사양에 설정되는 시크릿에 저장해야 합니다.

  1. 아래 템플릿에 따라 postgres_configuration_secret .yaml 파일을 생성합니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: external-postgres-configuration
      namespace: <target_namespace> 1
    stringData:
      host: "<external_ip_or_url_resolvable_by_the_cluster>" 2
      port: "<external_port>" 3
      database: "<desired_database_name>"
      username: "<username_to_connect_as>"
      password: "<password_to_connect_with>" 4
      sslmode: "prefer" 5
      type: "unmanaged"
    type: Opaque
    1
    보안을 생성할 네임스페이스입니다. 배포하려는 네임스페이스와 동일해야 합니다.
    2
    데이터베이스 노드의 확인 가능한 호스트 이름입니다.
    3
    외부 포트는 기본적으로 5432 로 설정됩니다.
    4
    변수 암호 값에는 배포, 백업 또는 복원 중에 문제가 발생하지 않도록 작은따옴표(', ") 또는 백슬래시(\)가 포함되지 않아야 합니다.
    5
    변수 sslmode외부 데이터베이스에만 유효합니다. 허용되는 값은 prefer, disable, allow, require, verify-ca, verify-full 입니다.
  2. oc create 명령을 사용하여 external-postgres-configuration-secret.yml 을 클러스터에 적용합니다.

    $ oc create -f external-postgres-configuration-secret.yml
  3. AutomationController 사용자 정의 리소스 오브젝트를 생성할 때 사양의 보안을 지정합니다. 아래 예제를 따르십시오.

    apiVersion: awx.ansible.com/v1beta1
    kind: AutomationController
    metadata:
      name: controller-dev
    spec:
      postgres_configuration_secret: external-postgres-configuration