Openshift Container Platform에 설치


Red Hat Ansible Automation Platform 2.5

OpenShift Container Platform에서 Ansible Automation Platform Operator 설치 및 구성

Red Hat Customer Content Services

초록

이 가이드에서는 OpenShift Container Platform의 Red Hat Ansible Automation Platform Operator에 대해 지원되는 설치 시나리오에 대한 절차 및 참조 정보를 제공합니다.

머리말

Red Hat Ansible Automation Platform에 관심을 가져 주셔서 감사합니다. Ansible Automation Platform은 Ansible 기반 환경에 제어, 지식, 위임을 추가하여 팀이 복잡한 다중 계층 배포를 관리하는 데 도움이 되는 상용 서비스입니다.

이 가이드에서는 OpenShift Container Platform에 Ansible Automation Platform Operator를 배포하기 위한 설치, 마이그레이션 및 업그레이드 요구 사항을 이해하는 데 도움이 됩니다.

Red Hat 문서에 관한 피드백 제공

이 문서를 개선하기 위한 제안이 있거나 오류를 찾을 수 있는 경우 https://access.redhat.com 에서 기술 지원에 문의하여 요청을 열 수 있습니다.

Red Hat Ansible Automation Platform은 Red Hat Enterprise Linux 및 Red Hat Openshift에서 모두 지원됩니다.

OpenShift Operator는 Red Hat OpenShift Container Platform에 복잡한 분산 소프트웨어의 2일 차 작업을 설치하고 자동화하는 데 도움이 됩니다. Ansible Automation Platform Operator를 사용하면 Red Hat OpenShift Container Platform에 Ansible Automation Platform 구성 요소를 배포하고 관리할 수 있습니다.

이 섹션을 사용하여 Red Hat OpenShift Container Platform 환경에서 Red Hat Ansible Automation Platform 설치를 계획할 수 있습니다. 설치하기 전에 지원되는 설치 시나리오를 검토하여 요구 사항을 충족하는지 확인합니다.

1.1. Ansible Automation Platform Operator 정보

Ansible Automation Platform Operator는 OpenShift 환경에서 새로운 Ansible Automation Platform 인스턴스에 대한 클라우드 네이티브 푸시 버튼 배포를 제공합니다. Ansible Automation Platform Operator에는 자동화 컨트롤러 및 프라이빗 자동화 허브의 인스턴스를 배포하고 관리하는 리소스 유형이 포함되어 있습니다. 또한 자동화 컨트롤러 배포 내에서 작업을 정의하고 시작하기 위한 자동화 컨트롤러 작업 리소스도 포함되어 있습니다.

Kubernetes 네이티브 Operator를 사용하여 Ansible Automation Platform 인스턴스를 배포하면 Red Hat Ansible Automation Platform 배포를 위한 업그레이드 및 전체 라이프사이클 지원을 포함하여 Red Hat OpenShift Container Platform에 배포된 플레이북에서 인스턴스를 시작하는 것보다 몇 가지 이점이 있습니다.

OperatorHub의 Red Hat Operators 카탈로그에서 Ansible Automation Platform Operator를 설치할 수 있습니다.

Ansible Automation Platform Operator 인프라 토폴로지에 대한 자세한 내용은 테스트된 배포 모델에서 컨테이너 지원 토폴로지 를 참조하십시오.

1.2. OpenShift Container Platform 버전 호환성

Ansible Automation Platform 2.5를 설치하는 Ansible Automation Platform Operator는 OpenShift Container Platform 4.9 이상 버전에서 사용할 수 있습니다.

1.3. Red Hat OpenShift Container Platform에서 지원되는 설치 시나리오

Red Hat OpenShift Container Platform 웹 콘솔에서 OperatorHub를 사용하여 Ansible Automation Platform Operator를 설치할 수 있습니다.

또는 OpenShift Container Platform CLI(명령줄 인터페이스) oc 에서 Ansible Automation Platform Operator를 설치할 수 있습니다. 이에 대한 도움말은 3장. OpenShift Container Platform CLI에서 Ansible Automation Platform Operator 설치 를 참조하십시오.

Ansible Automation Platform Operator를 설치한 후에는 Ansible Automation Platform CR(사용자 정의 리소스)을 생성해야 합니다. 이를 통해 플랫폼 게이트웨이라는 단일 통합 인터페이스에서 Ansible Automation Platform 구성 요소를 관리할 수 있습니다. 버전 2.5부터는 기존 자동화 컨트롤러, 자동화 허브 또는 이벤트 기반 Ansible, 구성 요소가 있는 경우에도 Ansible Automation Platform CR을 생성해야 합니다.

기존 구성 요소가 이미 배포된 경우 Ansible Automation Platform CR에 이러한 구성 요소를 지정해야 합니다. 기존 구성 요소와 동일한 네임스페이스에 사용자 정의 리소스를 생성해야 합니다.

Expand
지원되는 시나리오기존 구성 요소가 지원되는 시나리오
  • 자동화 컨트롤러, 자동화 허브 및 이벤트 기반 Ansible이 활성화된 빈 설치용 Ansible Automation Platform CR
  • 자동화 컨트롤러만 활성화된 Ansible Automation Platform CR
  • 자동화 컨트롤러, 자동화 허브만 활성화된 Ansible Automation Platform CR
  • 자동화 컨트롤러, 이벤트 기반 Ansible이 활성화된 Ansible Automation Platform CR
  • Ansible Automation Platform CR 사양에 지정된 자동화 컨트롤러 이름을 사용하여 기존 자동화 컨트롤러 CR과 동일한 네임스페이스에 생성된 Ansible Automation Platform CR
  • 자동화 컨트롤러 및 자동화 허브와 동일합니다.
  • 자동화 컨트롤러, 자동화 허브 및 이벤트 기반 Ansible과 동일합니다.
  • 자동화 컨트롤러 및 이벤트 기반 Ansible과 동일합니다.

1.4. 사용자 정의 리소스

각 기본 설치 워크플로에 대한 사용자 정의 리소스를 정의할 수 있습니다.

1.5. 추가 리소스

사전 요구 사항

  • OperatorHub에 Red Hat Ansible Automation Platform 카탈로그를 설치했습니다.
  • 플랫폼에 대한 StorageClass 오브젝트와 ReadWriteMany 액세스 모드를 사용하여 PVC(영구 볼륨 클레임)를 생성했습니다. 자세한 내용은 동적 프로비저닝 을 참조하십시오.
  • ReadWriteMany 액세스 모드를 사용하여 AWS(Amazon Web Services)에서 Red Hat OpenShift Container Platform 클러스터를 실행하려면 NFS 또는 기타 스토리지를 추가해야 합니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. OperatorsOperatorHub 로 이동합니다.
  3. Ansible Automation Platform을 검색하고 설치를 클릭합니다.
  4. 채널 업데이트 선택:

    • stable-2.x: 자동화 허브 및 자동화 컨트롤러 인스턴스의 배포를 Operator가 설치된 네임스페이스로 제한하는 네임스페이스 범위 Operator를 설치합니다. 이는 대부분의 경우에 적합합니다. stable-2.x 채널은 관리자 권한이 필요하지 않으며 단일 네임스페이스만 모니터링하므로 더 적은 리소스를 활용합니다.
    • stable-2.x-cluster 범위: 클러스터의 여러 네임스페이스에 자동화 허브 및 자동화 컨트롤러를 배포하고 클러스터의 모든 네임스페이스에 대한 관리자 권한이 필요합니다.
  5. 설치 모드, 설치된 네임스페이스승인 전략을 선택합니다.
  6. 설치를 클릭합니다.

설치 프로세스가 시작됩니다. 설치가 완료되면 Ansible Automation Platform Operator가 지정된 네임스페이스에 설치되었음을 알리는 모달이 표시됩니다.

  • View Operator 를 클릭하여 새로 설치된 Ansible Automation Platform Operator를 확인합니다.
중요

Ansible Automation Platform Operator의 단일 인스턴스만 단일 네임스페이스에 설치할 수 있습니다. 동일한 네임스페이스에 여러 인스턴스를 설치하면 두 Operator 인스턴스에 대한 부적절한 작업이 발생할 수 있습니다.

3장. OpenShift Container Platform CLI에서 Ansible Automation Platform Operator 설치

다음 지침을 사용하여 oc 명령을 사용하여 OpenShift Container Platform CLI(명령줄 인터페이스)에서 Red Hat OpenShift Container Platform에 Ansible Automation Platform Operator를 설치합니다.

3.1. 사전 요구 사항

  • operator 설치 권한이 있는 계정을 사용하여 Red Hat OpenShift Container Platform에 액세스할 수 있습니다.
  • OpenShift Container Platform CLI oc 명령이 로컬 시스템에 설치되어 있습니다. 자세한 내용은 Red Hat OpenShift Container Platform 제품 설명서에서 OpenShift CLI 설치를 참조하십시오.

3.2. OpenShift Container Platform CLI를 사용하여 Operator에 네임스페이스 구독

네임스페이스를 Operator에 가입하려면 다음 절차를 사용하십시오.

중요

Ansible Automation Platform Operator의 단일 인스턴스만 단일 네임스페이스에 등록할 수 있습니다. 동일한 네임스페이스에 여러 인스턴스를 구독하면 두 Operator 인스턴스에 대해 잘못된 작업이 발생할 수 있습니다.

프로세스

  1. Operator에 대한 프로젝트를 생성합니다.

    oc new-project ansible-automation-platform
  2. sub.yaml 이라는 파일을 생성합니다.
  3. 다음 YAML 코드를 sub.yaml 파일에 추가합니다.

    ---
    apiVersion: v1
    kind: Namespace
    metadata:
      labels:
        openshift.io/cluster-monitoring: "true"
      name: ansible-automation-platform
    ---
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: ansible-automation-platform-operator
      namespace: ansible-automation-platform
    spec:
      targetNamespaces:
        - ansible-automation-platform
    ---
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: ansible-automation-platform
      namespace: ansible-automation-platform
    spec:
      channel: 'stable-2.5'
      installPlanApproval: Automatic
      name: ansible-automation-platform-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
    ---
    apiVersion: automationcontroller.ansible.com/v1beta1
    kind: AutomationController
    metadata:
      name: example
      namespace: ansible-automation-platform
    spec:
      replicas: 1

    이 파일은 ansible-automation-platform 네임스페이스를 ansible-automation-platform operator에 서브스크립션하는 ansible-automation-platform -platform 이라는 Subscription 오브젝트를 생성합니다.

    그런 다음 ansible-automation-platform 네임스페이스에서 example 이라는 AutomationController 오브젝트를 생성합니다.

    자동화 컨트롤러 이름을 예제에서 변경하려면 sub.yamlkind: AutomationController 섹션에 있는 name 필드를 편집하고 < automation_controller_name >을 사용하려는 이름으로 교체합니다.

    apiVersion: automationcontroller.ansible.com/v1beta1
    kind: AutomationController
    metadata:
      name: <automation_controller_name>
      namespace: ansible-automation-platform
  4. oc apply 명령을 실행하여 sub.yaml 파일에 지정된 오브젝트를 생성합니다.

    oc apply -f sub.yaml

네임스페이스가 ansible-automation-platform-operator Operator에 성공적으로 가입되었는지 확인하려면 oc get subs 명령을 실행합니다.

$ oc get subs -n ansible-automation-platform

Operator에 네임스페이스를 서브스크립션하는 방법에 대한 자세한 내용은 Red Hat OpenShift Container Platform Operator 가이드 의 CLI를 사용하여 OperatorHub에서 설치를 참조하십시오.

OpenShift Container Platform CLI를 사용하여 생성한 자동화 컨트롤러의 웹 주소 및 암호를 가져올 수 있습니다.

플랫폼 게이트웨이에 로그인하려면 웹 주소와 암호가 필요합니다.

3.3.1. 플랫폼 게이트웨이 웹 주소 가져오기

Red Hat OpenShift Container Platform 경로는 외부 클라이언트가 이름으로 연결할 수 있도록 호스트 이름으로 서비스를 노출합니다. 플랫폼 게이트웨이 인스턴스를 만들 때 해당 인스턴스를 위한 경로가 생성되었습니다. 경로는 YAML 파일의 플랫폼 게이트웨이 오브젝트에 할당한 이름을 상속합니다.

다음 명령을 사용하여 경로를 가져옵니다.

oc get routes -n <platform_namespace>

다음 예에서 플랫폼 게이트웨이는 ansible-automation-platform 네임스페이스에서 실행되고 있습니다.

$ oc get routes -n ansible-automation-platform

NAME      HOST/PORT                                              PATH   SERVICES          PORT   TERMINATION     WILDCARD
example   example-ansible-automation-platform.apps-crc.testing          example-service   http   edge/Redirect   None

플랫폼 게이트웨이 인스턴스의 주소는 example-ansible-automation-platform.apps-crc.testing 입니다.

3.3.2. 플랫폼 게이트웨이 암호 가져오기

sub.yaml 의 플랫폼 게이트웨이 인스턴스의 YAML 블록은 이름admin_user 키에 값을 할당합니다. 다음 명령에서 이러한 값을 사용하여 플랫폼 게이트웨이 인스턴스의 암호를 가져옵니다.

oc get secret/<your instance name>-<admin_user>-password -o yaml

admin_user 의 기본값은 admin 입니다. sub.yaml 에서 관리자 사용자 이름을 변경한 경우 명령을 수정합니다.

다음 예제에서는 example 이라는 플랫폼 게이트웨이 오브젝트의 암호를 검색합니다.

oc get secret/example-admin-password -o yaml

플랫폼 게이트웨이 인스턴스의 암호는 출력의 metadata 필드에 나열됩니다.

$ oc get secret/example-admin-password -o yaml

apiVersion: v1
data:
  password: ODzLODzLODzLODzLODzLODzLODzLODzLODzLODzLODzL
kind: Secret
metadata:
  labels:
    app.kubernetes.io/component: aap
    app.kubernetes.io/name: example
    app.kubernetes.io/operator-version: ""
    app.kubernetes.io/part-of: example
  name: example-admin-password
  namespace: ansible-automation-platform

Ansible Automation Platform의 플랫폼 게이트웨이를 사용하면 다음 Ansible Automation Platform 구성 요소를 관리하여 단일 사용자 인터페이스를 구성할 수 있습니다.

  • 자동화 컨트롤러
  • 자동화 허브
  • 이벤트 기반 Ansible
  • Red Hat Ansible Lightspeed(이 기능은 기본적으로 비활성화되어 있으므로 사용을 선택해야 합니다.)

플랫폼 게이트웨이를 배포하려면 먼저 네임스페이스에 Ansible Automation Platform Operator가 설치되어 있어야 합니다. Ansible Automation Platform Operator를 설치하지 않은 경우 2장. Red Hat OpenShift Container Platform에 Red Hat Ansible Automation Platform Operator 설치 을 참조하십시오.

참고

플랫폼 게이트웨이는 Ansible Automation Platform Operator 버전 2.5에서만 사용할 수 있습니다. Ansible Automation Platform Operator 2.5에서 배포된 모든 구성 요소는 기본적으로 버전 2.5로 설정됩니다.

Ansible Automation Platform Operator 및 일부 또는 모든 Ansible Automation Platform 구성 요소가 설치된 경우 4.3절. “기존 Ansible Automation Platform 구성 요소를 사용하여 플랫폼 게이트웨이 배포” 에서 계속 진행하는 방법을 참조하십시오.

4.2. 플랫폼 게이트웨이 액세스

Ansible Automation Platform 인스턴스를 기본값으로 사용해야 합니다. 이 인스턴스는 자동화 컨트롤러, 자동화 허브 및 이벤트 기반 Ansible 배포를 단일 인터페이스에 연결합니다.

프로세스

Ansible Automation Platform 인스턴스에 액세스하려면 다음을 수행합니다.

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. NetworkingRoutes(경로) 로 이동합니다.
  3. Ansible Automation Platform 위치 아래의 링크를 클릭합니다.
  4. 이렇게 하면 Ansible Automation Platform 로그인 페이지로 리디렉션됩니다. 사용자 이름 필드에 사용자 이름으로 "admin" 입력합니다.
  5. 암호의 경우 다음을 수행해야 합니다.

    1. 워크로드 시크릿으로 이동합니다.
    2. & lt;your instance name>-admin-password 를 클릭하고 암호를 복사합니다.
    3. 암호를 암호 필드에 붙여넣습니다.
  6. 로그인을 클릭합니다.
  7. 서브스크립션을 적용합니다.

    1. 서브스크립션 매니페스트 또는 사용자 이름/암호를 클릭합니다.
    2. 매니페스트를 업로드하거나 사용자 이름과 암호를 입력합니다.
    3. 서브스크립션 목록에서 서브스크립션 을 선택합니다.
    4. 다음을 클릭합니다.
      이렇게 하면 분석 페이지로 리디렉션됩니다.
  8. Next를 클릭합니다.
  9. I agree to the terms of the license agreement 확인란을 선택합니다.
  10. Next를 클릭합니다.

이제 플랫폼 게이트웨이 사용자 인터페이스에 액세스할 수 있습니다. Ansible Automation Platform에 액세스할 수 없는 경우 문제 해결 및 디버깅에 대한 도움말은 4.4절. “플랫폼 게이트웨이에 대한 자주 묻는 질문” 에서 참조하십시오.

이미 설치한 Ansible Automation Platform의 모든 구성 요소를 새 Ansible Automation Platform 인스턴스에 연결할 수 있습니다.

다음 절차에서는 자동화 컨트롤러가 기존 구성 요소로 되어 자동화 허브 및 이벤트 기반 Ansible을 추가하려는 시나리오를 시뮬레이션합니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operators(운영자) InstalledOperators 로 이동합니다.
  3. Ansible Automation Platform Operator 배포를 선택합니다.
  4. 서브스크립션을 클릭하고 stable-2.5 로 업데이트 채널을 편집합니다.
  5. 세부 정보를 클릭하고 Ansible Automation Platform 타일에서 인스턴스 생성을 클릭합니다.
  6. Create Ansible Automation Platform 페이지에서 이름 필드에 인스턴스의 이름을 입력합니다.
  7. YAML 보기를 클릭하고 다음을 복사합니다.

        apiVersion: aap.ansible.com/v1alpha1
            kind: AnsibleAutomationPlatform
            metadata:
              name: example-aap
              namespace: aap
            spec:
              # Platform
              image_pull_policy: IfNotPresent
              # Components
              controller:
                disabled: false
                name: existing-controller-name
              eda:
                disabled: false
              hub:
                disabled: false
                ## uncomment if using file storage for Content pod
                storage_type: file
                file_storage_storage_class: <your-read-write-many-storage-class>
                file_storage_size: 10Gi
    
                ## uncomment if using S3 storage for Content pod
                # storage_type: S3
                # object_storage_s3_secret: example-galaxy-object-storage
    
                ## uncomment if using Azure storage for Content pod
                # storage_type: azure
                # object_storage_azure_secret: azure-secret-name
              lightspeed:
                disabled: true
    1. 새 구성 요소의 경우 이름을 지정하지 않으면 기본 이름이 생성됩니다.
  8. 생성을 클릭합니다.
  9. 새 인스턴스에 액세스하려면 4.2절. “플랫폼 게이트웨이 액세스” 을 참조하십시오.
참고

관리 Postgres Pod가 있는 기존 컨트롤러가 있는 경우 Ansible Automation Platform 리소스를 생성한 후 자동화 컨트롤러 인스턴스에서 원래 Postgres Pod를 계속 사용합니다. 새로 설치하려는 경우 모든 인스턴스에 대해 단일 Postgres 관리 Pod가 있어야 합니다.

4.4. 플랫폼 게이트웨이에 대한 자주 묻는 질문

Ansible Automation Platform 배포를 삭제하면 Automation Controller에 계속 액세스할 수 있습니까?
아니요, 자동화 컨트롤러, 자동화 허브 및 이벤트 기반 Ansible은 배포 내에 중첩되어 있으며도 삭제됩니다.
배포에 문제가 발생했지만 무엇을 알 수 있는지, 어떻게 확인할 수 있습니까?
Operator가 조정되는 동안 명령줄에서 따라갈 수 있습니다. 이 기능은 디버깅에 유용할 수 있습니다. 또는 배포 인스턴스를 클릭하여 배포가 진행되는 동안 업데이트되는 상태 조건을 확인할 수 있습니다.
개별 구성 요소 로그를 계속 볼 수 있습니까?
문제 해결 시 기본 로그에 대한 Ansible Automation Platform 인스턴스 및 각 개별 구성 요소(EDA, AutomationHub, AutomationController)를 검사해야 합니다.
인스턴스의 조건을 어디에서 볼 수 있습니까?
상태 조건을 표시하려면 인스턴스를 클릭하고 세부 정보 또는 이벤트 탭에서 확인합니다. 또는 get 명령을 실행할 수 있는 상태 조건을 표시하려면 oc get automationcontroller <instance-name> -o jsonpath=Pipe "| jq"
마이그레이션을 실시간으로 추적할 수 있습니까?
마이그레이션 상태를 추적하거나 마이그레이션에 실패한 이유를 이해하기 위해 실행 중인 마이그레이션 로그를 확인할 수 있습니다. logs 명령 사용: oc logs fresh-install-controller-migration-4.6.0-jwfm6 -f

5장. Red Hat OpenShift Container Platform 웹 콘솔에서 자동화 컨트롤러 구성

이 지침을 사용하여 Red Hat OpenShift Container Platform에서 자동화 컨트롤러 Operator를 구성하고, 사용자 정의 리소스를 지정하고, 외부 데이터베이스를 사용하여 Ansible Automation Platform을 배포할 수 있습니다.

자동화 컨트롤러 구성은 자동화 컨트롤러 extra_settings를 통해 수행하거나 배포 후 사용자 인터페이스에서 직접 수행할 수 있습니다. 그러나 extra_settings에서 만든 구성이 사용자 인터페이스에서 설정한 설정보다 우선합니다.

참고

자동화 컨트롤러 인스턴스가 제거되면 연결된 PVC가 자동으로 삭제되지 않습니다. 이로 인해 새 배포의 이름이 이전 배포와 동일한 경우 마이그레이션 중 문제가 발생할 수 있습니다. 따라서 동일한 네임스페이스에 새 자동화 컨트롤러 인스턴스를 배포하기 전에 이전 PVC를 수동으로 제거하는 것이 좋습니다. 자세한 내용은 PVC 찾기 및 삭제 를 참조하십시오.

5.1. 사전 요구 사항

  • Operator Hub에 Red Hat Ansible Automation Platform 카탈로그를 설치했습니다.
  • 자동화 컨트롤러의 경우 Operator가 필요한 PVC를 동적으로 생성하도록 클러스터에 기본 StorageClass를 구성해야 합니다. 외부 PostgreSQL 데이터베이스가 구성된 경우 필요하지 않습니다.
  • Hub의 경우 ReadWriteMany를 지원하는 StorageClass를 클러스터에서 사용할 수 있어야 콘텐츠, redis 및 api Pod에 필요한 PVC를 동적으로 생성할 수 있어야 합니다. 클러스터의 기본 StorageClass가 아닌 경우 AutomationHub 오브젝트를 생성할 때 지정할 수 있습니다.

5.1.1. 컨트롤러 이미지 가져오기 정책 구성

자동화 컨트롤러에서 이미지 가져오기 정책을 구성하려면 다음 절차를 사용하십시오.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operator 설치된 Operator로 이동합니다.
  3. Ansible Automation Platform Operator 배포를 선택합니다.
  4. 자동화 컨트롤러 탭을 선택합니다.
  5. 새 인스턴스의 경우 자동화 컨트롤러 생성을 클릭합니다.

    1. 기존 인스턴스의 경우 Cryostat 아이콘을 클릭한 다음 Edit AutomationController 를 클릭하여 YAML 보기를 편집할 수 있습니다.
  6. 고급 구성 을 클릭합니다. Image Pull Policy 에서 라디오 버튼을 클릭하여 선택합니다.

    • Always
    • Never
    • IfNotPresent
  7. Image Pull Secrets 아래에 옵션을 표시하려면 화살표를 클릭합니다.

    1. + beside Image Pull Secret 을 클릭하고 값을 입력합니다.
  8. 웹 컨테이너 리소스 요구 사항 드롭다운 목록 아래의 필드를 표시하려면 화살표를 클릭합니다.

    1. 제한요청 에서 CPU 코어, 메모리스토리지 값을 입력합니다.
  9. Task 컨테이너 리소스 요구 사항 드롭다운 목록 아래의 필드를 표시하려면 화살표를 클릭합니다.

    1. 제한요청 에서 CPU 코어, 메모리스토리지 값을 입력합니다.
  10. EE Control Plane 컨테이너 리소스 요구 사항 드롭다운 목록에 필드를 표시하려면 화살표를 클릭합니다.

    1. 제한요청 에서 CPU 코어, 메모리스토리지 값을 입력합니다.
  11. PostgreSQL init 컨테이너 리소스 요구 사항(관리 서비스를 사용하는 경우) 드롭다운 목록 아래의 필드를 표시하려면 화살표를 클릭합니다.

    1. 제한요청 에서 CPU 코어, 메모리스토리지 값을 입력합니다.
  12. Redis 컨테이너 리소스 요구 사항 드롭다운 목록에 필드를 표시하려면 화살표를 클릭합니다.

    1. 제한요청 에서 CPU 코어, 메모리스토리지 값을 입력합니다.
  13. PostgreSQL 컨테이너 리소스 요구 사항(관리 인스턴스 사용 시)* 드롭다운 목록 아래의 필드를 표시하려면 화살표를 클릭합니다.

    1. 제한요청 에서 CPU 코어, 메모리스토리지 값을 입력합니다.
  14. PostgreSQL 컨테이너 스토리지 요구 사항(관리 인스턴스 사용 시) 드롭다운 목록을 표시하려면 화살표를 클릭합니다.

    1. 제한요청 에서 CPU 코어, 메모리스토리지 값을 입력합니다.
  15. Replicas 아래에 인스턴스 복제본 수를 입력합니다.
  16. 인스턴스 제거 시 사용된 시크릿 제거에서 true 또는 false 를 선택합니다. 기본값은 false입니다.
  17. 생성 시 데이터가 있는 Preload 인스턴스에서 true 또는 false 를 선택합니다. 기본값은 true입니다.

5.1.2. 컨트롤러 LDAP 보안 구성

다음 옵션 중 하나를 통해 자동화 컨트롤러에 대한 LDAP SSL 구성을 구성할 수 있습니다.

  • 자동화 컨트롤러 사용자 인터페이스입니다.
  • 플랫폼 게이트웨이 사용자 인터페이스입니다. 추가 단계는 액세스 관리 및 인증을 참조하십시오.
  • 다음 절차 단계입니다.

프로세스

  1. ldap_cacert_secret 이 없는 경우 다음 명령을 사용하여 생성할 수 있습니다.

    $ oc create secret generic <resourcename>-custom-certs \
        --from-file=ldap-ca.crt=<PATH/TO/YOUR/CA/PEM/FILE>  \ 
    1
    1
    CA 인증서가 저장된 위치를 가리키도록 이 값을 수정합니다.

    이렇게 하면 다음과 같은 시크릿이 생성됩니다.

    $ oc get secret/mycerts -o yaml
    apiVersion: v1
    data:
      ldap-ca.crt: <mysecret> 
    1
    
    kind: Secret
    metadata:
      name: mycerts
      namespace: awx
    type: Opaque
    1
    자동화 컨트롤러는 ldap_cacert_secret 을 사용할 때 지정된 시크릿에서 data 필드 ldap-ca.crt 를 찾습니다.
  2. LDAP 인증 기관 신뢰 번들 에서 드롭다운 메뉴를 클릭하고 ldap_cacert_secret 을 선택합니다.
  3. LDAP 암호 시크릿 에서 드롭다운 메뉴를 클릭하고 시크릿을 선택합니다.
  4. EE Images Pull Credentials Secret 에서 드롭다운 메뉴를 클릭하고 시크릿을 선택합니다.
  5. Bundle Cacert Secret 에서 드롭다운 메뉴를 클릭하고 시크릿을 선택합니다.
  6. 서비스 유형에서 드롭다운 메뉴를 클릭하고 선택합니다.

    • ClusterIP
    • LoadBalancer
    • NodePort

5.1.3. 자동화 컨트롤러 Operator 경로 옵션 구성

Red Hat Ansible Automation Platform Operator 설치 양식을 사용하면 고급 구성에서 자동화 컨트롤러 Operator 경로 옵션을 추가로 구성할 수 있습니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operators(운영자) InstalledOperators 로 이동합니다.
  3. Ansible Automation Platform Operator 배포를 선택합니다.
  4. 자동화 컨트롤러 탭을 선택합니다.
  5. 새 인스턴스의 경우 자동화 컨트롤러 생성을 클릭합니다.

    1. 기존 인스턴스의 경우 Cryostat 아이콘을 클릭한 다음 Edit AutomationController 를 클릭하여 YAML 보기를 편집할 수 있습니다.
  6. 고급 구성 을 클릭합니다.
  7. Ingress 유형에서 드롭다운 메뉴를 클릭하고 경로를 선택합니다.
  8. 경로 DNS 호스트 에서 경로가 응답하는 공통 호스트 이름을 입력합니다.
  9. 경로 TLS 종료 메커니즘 에서 드롭다운 메뉴를 클릭하고 Edge 또는 Passthrough 를 선택합니다. 대부분의 경우 에지 를 선택해야 합니다.
  10. Route TLS 인증 정보 시크릿 에서 드롭다운 메뉴를 클릭하고 목록에서 시크릿을 선택합니다.
  11. Enable persistence for /var/lib/projects 디렉토리에서 슬라이더를 이동하여 true 또는 false를 선택합니다.

5.1.4. 자동화 컨트롤러 Operator의 수신 유형 구성

Ansible Automation Platform Operator 설치 양식을 사용하면 고급 구성에서 자동화 컨트롤러 Operator 수신을 추가로 구성할 수 있습니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operators(운영자) InstalledOperators 로 이동합니다.
  3. Ansible Automation Platform Operator 배포를 선택합니다.
  4. 자동화 컨트롤러 탭을 선택합니다.
  5. 새 인스턴스의 경우 자동화 컨트롤러 생성을 클릭합니다.

    1. 기존 인스턴스의 경우 Cryostat 아이콘을 클릭한 다음 Edit AutomationController 를 클릭하여 YAML 보기를 편집할 수 있습니다.
  6. 고급 구성 을 클릭합니다.
  7. Ingress 유형에서 드롭다운 메뉴를 클릭하고 Ingress 를 선택합니다.
  8. Ingress 주석 에서 수신에 추가할 주석을 입력합니다.
  9. Ingress TLS 시크릿 에서 드롭다운 메뉴를 클릭하고 목록에서 시크릿을 선택합니다.

자동화 컨트롤러 Operator를 구성한 후 양식 보기 하단에서 생성 을 클릭합니다. Red Hat OpenShift Container Platform에서 Pod를 생성합니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.

WorkloadsPod 로 이동하여 새로 생성된 인스턴스를 찾아 진행 상황을 볼 수 있습니다.

검증

자동화 컨트롤러에서 Ansible Automation Platform Operator 설치에서 제공하는 다음 Operator Pod가 실행 중인지 확인합니다.

Expand
Operator 관리자 컨트롤러자동화 컨트롤러자동화 허브이벤트 기반 Ansible (EDA)

세 Operator 각각에 대한 Operator 관리자 컨트롤러에는 다음이 포함됩니다.

  • automation-controller-operator-controller-manager
  • automation-hub-operator-controller-manager
  • resource-operator-controller-manager
  • aap-gateway-operator-controller-manager
  • ansible-lightspeed-operator-controller-manager
  • eda-server-operator-controller-manager

자동화 컨트롤러를 배포한 후 다음 Pod가 추가된 것을 확인할 수 있습니다.

  • 컨트롤러
  • controller-postgres
  • controller-web
  • controller-task

자동화 허브를 배포한 후 다음 Pod가 추가된 것을 확인할 수 있습니다.

  • hub-api
  • hub-content
  • hub-postgres
  • hub-redis
  • hub-worker

EDA를 배포한 후 다음 Pod가 추가된 것을 확인할 수 있습니다.

  • eda-activation-worker
  • da-api
  • eda-default-worker
  • eda-event-stream
  • EDA-scheduler
참고

누락된 Pod는 풀 시크릿이 필요함을 나타낼 수 있습니다. 보호 또는 개인 이미지 레지스트리에는 풀 시크릿이 필요합니다. 자세한 내용은 이미지 풀 시크릿 사용을 참조하십시오. oc describe pod <pod-name >을 실행하여 해당 Pod에 ImagePullBackOff 오류가 있는지 확인하여 이 문제를 추가로 진단할 수 있습니다.

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

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

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

참고

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

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

사전 요구 사항

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

참고

Ansible Automation Platform 2.5는 PostgreSQL 15를 지원합니다.

프로세스

외부 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: automationcontroller.ansible.com/v1beta1
    kind: AutomationController
    metadata:
      name: controller-dev
    spec:
      postgres_configuration_secret: external-postgres-configuration

5.3. PVC 검색 및 삭제

PVC(영구 볼륨 클레임)는 자동화 허브 및 자동화 컨트롤러 애플리케이션에서 사용하는 데이터를 저장하는 데 사용되는 스토리지 볼륨입니다. 이러한 PVC는 애플리케이션과 독립적이며 애플리케이션이 삭제된 경우에도 유지됩니다. 더 이상 PVC가 필요하지 않거나 다른 위치에서 백업한 경우 수동으로 삭제할 수 있습니다.

프로세스

  1. 배포 네임스페이스의 기존 PVC를 나열합니다.

    oc get pvc -n <namespace>
  2. 이전 배포 이름 및 PVC 이름을 비교하여 이전 배포와 연결된 PVC를 확인합니다.
  3. 이전 PVC를 삭제합니다.

    oc delete pvc -n <namespace> <pvc-name>

6장. Red Hat OpenShift Container Platform 웹 콘솔에서 자동화 허브 구성

이 지침을 사용하여 Red Hat OpenShift Container Platform에서 Automation Hub Operator를 구성하고, 사용자 정의 리소스를 지정하고, 외부 데이터베이스를 사용하여 Ansible Automation Platform을 배포할 수 있습니다.

자동화 허브 구성은 자동화 허브 pulp_settings를 통해 수행하거나 배포 후 사용자 인터페이스에서 직접 수행할 수 있습니다. 그러나 pulp_settings에서 만든 구성이 사용자 인터페이스에서 설정한 설정보다 우선합니다. Hub 설정은 Hub 사용자 정의 리소스 사양에 항상 소문자로 설정해야 합니다.

참고

자동화 허브 인스턴스를 제거하면 PVC가 자동으로 삭제되지 않습니다. 이로 인해 새 배포의 이름이 이전 배포와 동일한 경우 마이그레이션 중 문제가 발생할 수 있습니다. 따라서 동일한 네임스페이스에 새 자동화 허브 인스턴스를 배포하기 전에 이전 PVC를 수동으로 제거하는 것이 좋습니다. 자세한 내용은 PVC 찾기 및 삭제 를 참조하십시오.

6.1. 사전 요구 사항

  • Operator Hub에 Ansible Automation Platform Operator가 설치되어 있습니다.

자동화 허브에는 여러 Pod가 컬렉션과 같은 공유 콘텐츠에 액세스할 수 있도록 작업을 위해 ReadWriteMany 파일 기반 스토리지, Azure Blob 스토리지 또는 Amazon S3 호환 스토리지가 필요합니다.

AutomationHub CR에서 오브젝트 스토리지를 구성하는 프로세스는 Amazon S3 및 Azure Blob Storage와 유사합니다.

파일 기반 스토리지를 사용하고 설치 시나리오에 자동화 허브가 포함된 경우 Ansible Automation Platform Operator의 스토리지 옵션이 ReadWriteMany 로 설정되어 있는지 확인합니다. ReadWriteMany 는 기본 스토리지 옵션입니다.

또한 OpenShift Data Foundation은 ReadWriteMany 또는 S3 호환 구현을 제공합니다. 또한 ReadWriteMany 를 지원하도록 NFS 스토리지 구성을 설정할 수 있습니다. 그러나 이로 인해 NFS 서버가 잠재적인 단일 장애 지점으로 도입됩니다.

6.1.1.1. ReadWriteMany 액세스 모드를 사용하여 OCP 스토리지 프로비저닝

Ansible Automation Platform Operator를 성공적으로 설치하려면 처음에 자동화 허브를 위해 스토리지 유형을 프로비저닝 해야 합니다.

프로세스

  1. 스토리지 PersistentVolume+으로 이동합니다.
  2. btn: Create PersistentVolume을 클릭합니다.
  3. 첫 번째 단계에서 기본 ReadWriteOnce 에서 ReadWriteManyaccessModes 를 업데이트합니다.

    1. 자세한 내용은 프로비저닝 을 참조하여 액세스 모드를 업데이트합니다.
  4. PVC(영구 볼륨 클레임)를 생성하려면 이 섹션의 추가 단계를 완료합니다.
6.1.1.2. Amazon S3에서 오브젝트 스토리지 구성

Red Hat은 자동화 허브를 위해 Amazon S3(Simple Storage Service)를 지원합니다. AutomationHub CR(사용자 정의 리소스)을 배포할 때 구성하거나 기존 인스턴스에 맞게 구성할 수 있습니다.

사전 요구 사항

  • Amazon S3 버킷을 생성하여 오브젝트를 저장합니다.
  • S3 버킷의 이름을 확인합니다.

프로세스

  1. AWS 인증 정보 및 연결 세부 정보가 포함된 Kubernetes 시크릿과 Amazon S3 버킷의 이름을 생성합니다. 다음 예제에서는 test-s3 이라는 시크릿을 생성합니다.

    $ oc -n $HUB_NAMESPACE apply -f- <<EOF
    apiVersion: v1
    kind: Secret
    metadata:
      name: 'test-s3'
    stringData:
      s3-access-key-id: $S3_ACCESS_KEY_ID
      s3-secret-access-key: $S3_SECRET_ACCESS_KEY
      s3-bucket-name: $S3_BUCKET_NAME
      s3-region: $S3_REGION
    EOF
  2. 자동화 허브 CR(사용자 정의 리소스) 사양에 보안을 추가합니다.

    spec:
      object_storage_s3_secret: test-s3
  3. 기존 인스턴스에 이 보안을 적용하는 경우 API Pod를 다시 시작하여 변경 사항을 적용합니다. <Hub-name >은 허브 인스턴스의 이름입니다.
$ oc -n $HUB_NAMESPACE delete pod -l app.kubernetes.io/name=<hub-name>-api
6.1.1.3. Azure Blob에서 오브젝트 스토리지 구성

Red Hat은 자동화 허브를 위한 Azure Blob Storage를 지원합니다. AutomationHub CR(사용자 정의 리소스)을 배포할 때 구성하거나 기존 인스턴스에 맞게 구성할 수 있습니다.

사전 요구 사항

  • 오브젝트를 저장할 Azure Storage Blob 컨테이너를 만듭니다.
  • Blob 컨테이너의 이름을 확인합니다.

프로세스

  1. Azure 계정의 인증 정보 및 연결 세부 정보와 Azure Storage Blob 컨테이너의 이름이 포함된 Kubernetes 시크릿을 생성합니다. 다음 예제에서는 test-azure 라는 시크릿을 생성합니다.

    $ oc -n $HUB_NAMESPACE apply -f- <<EOF
    apiVersion: v1
    kind: Secret
    metadata:
      name: 'test-azure'
    stringData:
      azure-account-name: $AZURE_ACCOUNT_NAME
      azure-account-key: $AZURE_ACCOUNT_KEY
      azure-container: $AZURE_CONTAINER
      azure-container-path: $AZURE_CONTAINER_PATH
      azure-connection-string: $AZURE_CONNECTION_STRING
    EOF
  2. 자동화 허브 CR(사용자 정의 리소스) 사양에 보안을 추가합니다.

    spec:
      object_storage_azure_secret: test-azure
  3. 기존 인스턴스에 이 보안을 적용하는 경우 API Pod를 다시 시작하여 변경 사항을 적용합니다. <Hub-name >은 허브 인스턴스의 이름입니다.
$ oc -n $HUB_NAMESPACE delete pod -l app.kubernetes.io/name=<hub-name>-api

6.1.2. 자동화 허브 Operator 경로 옵션 구성

Red Hat Ansible Automation Platform Operator 설치 양식을 사용하면 고급 구성에서 자동화 허브 Operator 경로 옵션을 추가로 구성할 수 있습니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operators(운영자) InstalledOperators 로 이동합니다.
  3. Ansible Automation Platform Operator 배포를 선택합니다.
  4. Automation Hub 탭을 선택합니다.
  5. 새 인스턴스의 경우 AutomationHub 만들기 를 클릭합니다.

    1. 기존 인스턴스의 경우 Cryostat 아이콘을 클릭한 다음 AutomationHub 편집을 클릭하여 YAML 보기를 편집할 수 있습니다.
  6. 고급 구성 을 클릭합니다.
  7. Ingress 유형에서 드롭다운 메뉴를 클릭하고 경로를 선택합니다.
  8. 경로 DNS 호스트 에서 경로가 응답하는 공통 호스트 이름을 입력합니다.
  9. 경로 TLS 종료 메커니즘 에서 드롭다운 메뉴를 클릭하고 Edge 또는 Passthrough 를 선택합니다.
  10. Route TLS 인증 정보 시크릿 에서 드롭다운 메뉴를 클릭하고 목록에서 시크릿을 선택합니다.

6.1.3. 자동화 허브 Operator의 수신 유형 구성

Ansible Automation Platform Operator 설치 양식을 사용하면 고급 구성에서 자동화 허브 Operator 수신을 추가로 구성할 수 있습니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operators(운영자) InstalledOperators 로 이동합니다.
  3. Ansible Automation Platform Operator 배포를 선택합니다.
  4. Automation Hub 탭을 선택합니다.
  5. 새 인스턴스의 경우 AutomationHub 만들기 를 클릭합니다.

    1. 기존 인스턴스의 경우 Cryostat 아이콘을 클릭한 다음 AutomationHub 편집을 클릭하여 YAML 보기를 편집할 수 있습니다.
  6. 고급 구성 을 클릭합니다.
  7. Ingress 유형에서 드롭다운 메뉴를 클릭하고 Ingress 를 선택합니다.
  8. Ingress 주석 에서 수신에 추가할 주석을 입력합니다.
  9. Ingress TLS 시크릿 에서 드롭다운 메뉴를 클릭하고 목록에서 시크릿을 선택합니다.

자동화 허브 Operator를 구성한 후 양식 보기 하단에서 생성 을 클릭합니다. Red Hat OpenShift Container Platform에서 Pod를 생성합니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.

WorkloadsPod 로 이동하여 새로 생성된 인스턴스를 찾아 진행 상황을 볼 수 있습니다.

검증

자동화 허브에서 Ansible Automation Platform Operator 설치에서 제공하는 다음 Operator Pod가 실행 중인지 확인합니다.

Expand
Operator 관리자 컨트롤러자동화 컨트롤러자동화 허브

3개 Operator 각각에 대한 Operator 관리자 컨트롤러는 다음을 포함합니다.

  • automation-controller-operator-controller-manager
  • automation-hub-operator-controller-manager
  • resource-operator-controller-manager

자동화 컨트롤러를 배포한 후 이러한 Pod가 추가되는 것을 확인할 수 있습니다.

  • 컨트롤러
  • controller-postgres

자동화 허브를 배포한 후 다음 Pod가 추가된 것을 확인할 수 있습니다.

  • hub-api
  • hub-content
  • hub-postgres
  • hub-redis
  • hub-worker
참고

누락된 Pod는 풀 시크릿이 필요함을 나타낼 수 있습니다. 보호 또는 개인 이미지 레지스트리에는 풀 시크릿이 필요합니다. 자세한 내용은 이미지 풀 시크릿 사용을 참조하십시오. oc describe pod <pod-name >을 실행하여 해당 Pod에 ImagePullBackOff 오류가 있는지 확인하여 이 문제를 추가로 진단할 수 있습니다.

6.2. OpenShift Container Platform의 Ansible 자동화 허브에 대한 LDAP 인증 구성

Hub 인스턴스 구성 파일의 spec 섹션에서 OpenShift Container Platform의 Ansible Automation Platform에 대한 LDAP 인증 설정을 구성합니다.

프로세스

  • 다음 예제를 사용하여 자동화 허브 인스턴스에서 LDAP를 구성합니다. 빈 필드에 '' 를 입력합니다.

    spec:
        pulp_settings:
          auth_ldap_user_attr_map:
            email: "mail"
            first_name: "givenName"
            last_name: "sn"
          auth_ldap_group_search_base_dn: 'cn=groups,cn=accounts,dc=example,dc=com'
          auth_ldap_bind_dn: ' '
          auth_ldap_bind_password: ' '
          auth_ldap_group_search_filter: (objectClass=posixGroup)
          auth_ldap_user_search_scope: SUBTREE
          auth_ldap_server_uri: 'ldap://ldapserver:389'
          authentication_backend_preset: ldap
          auth_ldap_mirror_groups: 'True'
          auth_ldap_user_search_base_dn: 'cn=users,cn=accounts,dc=example,dc=com'
          auth_ldap_bind_password: 'ldappassword'
          auth_ldap_user_search_filter: (uid=%(user)s)
          auth_ldap_group_search_scope: SUBTREE
          auth_ldap_user_flags_by_group: '@json {"is_superuser": "cn=tower-admin,cn=groups,cn=accounts,dc=example,dc=com"}'
참고

필드를 비워 두지 마십시오. 변수가 없는 필드에 대해 '' 를 입력하여 기본값을 나타냅니다.

6.3. 자동화 허브 경로 찾기

플랫폼 게이트웨이 또는 다음 절차를 통해 자동화 허브에 액세스할 수 있습니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. NetworkingRoutes (경로) 로 이동합니다.
  3. 위치 에서 자동화 허브 인스턴스의 URL을 클릭합니다.

자동화 허브 사용자 인터페이스가 시작되면 운영자 구성 프로세스 중에 지정된 관리자 자격 증명으로 로그인할 수 있습니다.

참고

구성 중에 관리자 암호를 지정하지 않은 경우 사용자를 위해 자동으로 생성되었습니다. 이 암호를 찾으려면 프로젝트로 이동하여 WorkloadsSecrets 를 선택하고 controller-admin-password를 엽니다. 여기에서 암호를 복사하여 Automation Hub 암호 필드에 붙여넣을 수 있습니다.

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

기본적으로 Ansible Automation Platform Operator는 Ansible Automation Platform 배포와 동일한 네임스페이스에서 관리형 PostgreSQL Pod를 자동으로 생성하고 구성합니다.

전용 노드를 사용하여 전용 리소스를 확인하거나 백업, 업그레이드 또는 성능 조정을 수동으로 관리하려는 경우 외부 데이터베이스를 대신 사용할 수 있습니다.

참고

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

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

사전 요구 사항

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

참고

Ansible Automation Platform 2.5는 PostgreSQL 15를 지원합니다.

프로세스

외부 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. AutomationHub 사용자 정의 리소스 오브젝트를 생성할 때 아래 예에 따라 사양에 보안을 지정합니다.

    apiVersion: automationhub.ansible.com/v1beta1
    kind: AutomationHub
    metadata:
      name: hub-dev
    spec:
      postgres_configuration_secret: external-postgres-configuration

6.4.1. 자동화 허브 PostgreSQL 데이터베이스의 hstore 확장 활성화

Ansible Automation Platform 2.5에 추가된 데이터베이스 마이그레이션 스크립트는 hstore 필드를 사용하여 정보를 저장하므로 자동화 허브 PostgreSQL 데이터베이스에 대한 hstore 확장을 활성화해야 합니다.

이 프로세스는 Ansible Automation Platform 설치 프로그램 및 관리형 PostgreSQL 서버를 사용할 때 자동으로 수행됩니다.

PostgreSQL 데이터베이스가 외부인 경우 자동화 허브를 설치하기 전에 수동으로 hstore 확장을 자동화 허브 PostreSQL 데이터베이스로 활성화해야 합니다.

자동화 허브를 설치하기 전에 hstore 확장 기능을 활성화하지 않으면 데이터베이스 마이그레이션 중에 오류가 발생합니다.

프로세스

  1. PostgreSQL 서버(자동화 허브 데이터베이스)에서 확장을 사용할 수 있는지 확인합니다.

    $ psql -d <automation hub database> -c "SELECT * FROM pg_available_extensions WHERE name='hstore'"
  2. 여기서 < automation hub database>의 기본값automationhub 입니다.

    hstore 를 사용할 수 있는 출력 예:

    name  | default_version | installed_version |comment
    ------+-----------------+-------------------+---------------------------------------------------
     hstore | 1.7           |                   | data type for storing sets of (key, value) pairs
    (1 row)

    hstore 를 사용할 수 없는 출력 예:

     name | default_version | installed_version | comment
    ------+-----------------+-------------------+---------
    (0 rows)
  3. RHEL 기반 서버에서 hstore 확장은 postgresql-contrib RPM 패키지에 포함되어 있으며 PostgreSQL 서버 RPM 패키지를 설치할 때 자동으로 설치되지 않습니다.

    RPM 패키지를 설치하려면 다음 명령을 사용하십시오.

    dnf install postgresql-contrib
  4. 다음 명령을 사용하여 자동화 허브 데이터베이스에 hstore PostgreSQL 확장을 생성합니다.

    $ psql -d <automation hub database> -c "CREATE EXTENSION hstore;"

    결과는 다음과 같습니다.

    CREATE EXTENSION

    다음 출력에서 installed_version 필드에는 hstore 가 활성화되었음을 나타내는 hstore 확장이 포함되어 있습니다.

    name | default_version | installed_version | comment
    -----+-----------------+-------------------+------------------------------------------------------
    hstore  |     1.7      |       1.7         | data type for storing sets of (key, value) pairs
    (1 row)

6.5. PVC 검색 및 삭제

PVC(영구 볼륨 클레임)는 자동화 허브 및 자동화 컨트롤러 애플리케이션에서 사용하는 데이터를 저장하는 데 사용되는 스토리지 볼륨입니다. 이러한 PVC는 애플리케이션과 독립적이며 애플리케이션이 삭제된 경우에도 유지됩니다. 더 이상 PVC가 필요하지 않거나 다른 위치에서 백업한 경우 수동으로 삭제할 수 있습니다.

프로세스

  1. 배포 네임스페이스의 기존 PVC를 나열합니다.

    oc get pvc -n <namespace>
  2. 이전 배포 이름 및 PVC 이름을 비교하여 이전 배포와 연결된 PVC를 확인합니다.
  3. 이전 PVC를 삭제합니다.

    oc delete pvc -n <namespace> <pvc-name>

6.6. 추가 구성

컬렉션 다운로드 수를 사용하면 컬렉션 사용량을 이해하는 데 도움이 될 수 있습니다. 컬렉션 다운로드 수를 자동화 허브에 추가하려면 다음 구성을 설정합니다.

spec:
  pulp_settings:
    ansible_collect_download_count: true

ansible_collect_download_count 가 활성화되면 자동화 허브에서 컬렉션의 다운로드 수를 표시합니다.

7장. Ansible Automation Platform Operator에 클러스터형 Redis 배포

Ansible Automation Platform Operator를 통해 Ansible Automation Platform 인스턴스를 생성할 때 독립 실행형 Redis는 기본적으로 할당됩니다. 클러스터형 Redis를 배포하려면 다음 절차를 사용하십시오.

Redis에 대한 자세한 내용은 설치 계획 가이드의 캐싱 및 대기열 시스템을 참조하십시오.

사전 요구 사항

  • Ansible Automation Platform Operator 배포가 설치되어 있습니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operators(운영자) InstalledOperators 로 이동합니다.
  3. Ansible Automation Platform Operator 배포를 선택합니다.
  4. 세부 정보 탭을 선택합니다.
  5. Ansible Automation Platform 타일에서 인스턴스 생성을 클릭합니다.

    1. 기존 인스턴스의 경우 Cryostat 아이콘을 클릭한 다음 AnsibleAutomationPlatform 을 편집하여 YAML 보기를 편집할 수 있습니다.
    2. redis_mode 값을 "clustered"로 변경합니다.
    3. 다시 로드 를 클릭한 다음 저장을 클릭합니다.
  6. 고급 구성 을 확장하려면 클릭합니다.
  7. Redis Mode 목록에 대해 클러스터를 선택합니다.
  8. 필요에 따라 나머지 인스턴스를 구성한 다음 만들기 를 클릭합니다.

인스턴스는 6개의 Redis 복제본을 기본값으로 사용하는 클러스터 Redis와 함께 배포됩니다.

8장. 자동화 허브와 함께 Red Hat Single Sign-On Operator 사용

프라이빗 자동화 허브는 인증을 위해 Red Hat Single Sign-On을 사용합니다.

Red Hat Single Sign-On Operator는 리소스를 생성하고 관리합니다. 이 Operator를 사용하여 OpenShift에서 Red Hat Single Sign-On 관리를 자동화하는 사용자 지정 리소스를 생성합니다.

  • VM( 가상 머신 )에 Ansible Automation Platform을 설치할 때 설치 프로그램은 프라이빗 자동화 허브와 함께 사용할 Red Hat Single Sign-On을 자동으로 설치하고 구성할 수 있습니다.
  • Red Hat OpenShift Container Platform에 Ansible Automation Platform을 설치할 때 Single Sign-On을 별도로 설치해야 합니다.

이 장에서는 Red Hat Single Sign-On을 구성하고 OpenShift Container Platform에 Ansible Automation Platform을 설치할 때 프라이빗 자동화 허브와 통합하는 프로세스를 설명합니다.

사전 요구 사항

8.1. Keycloak 인스턴스 생성

Red Hat Single Sign-On Operator를 설치한 후 Ansible Automation Platform에서 사용할 Keycloak 인스턴스를 생성할 수 있습니다.

여기에서 외부 Postgres를 제공하거나 사용자를 위해 생성됩니다.

프로세스

/ Red Hat OpenShift Container Platform에 로그인합니다. Operator설치된 로 이동합니다. RH-SSO 프로젝트를 선택합니다. Red Hat Single Sign-On Operator 를 선택합니다. Red Hat Single Sign-On Operator 세부 정보 페이지에서 Keycloak 을 선택합니다. 인스턴스 생성 을 클릭합니다. YAML 보기를 클릭합니다.

+ 기본 Keycloak 사용자 정의 리소스는 다음과 같습니다.

+

apiVersion: keycloak.org/v1alpha1
kind: Keycloak
metadata:
  name: example-keycloak
  labels:
	app: sso
  namespace: aap
spec:
  externalAccess:
	enabled: true
  instances: 1

+ . 생성을 클릭합니다.

  1. 배포가 완료되면 이 인증 정보를 사용하여 관리 콘솔에 로그인할 수 있습니다.
  2. 네임스페이스의 credentials-< custom-resource> (example keycloak) 시크릿에서 관리자의 인증 정보를 찾을 수 있습니다.

8.2. Ansible Automation Platform의 Keycloak 영역 생성

사용자, 자격 증명, 역할 및 그룹 집합을 관리할 영역을 생성합니다. 사용자는 영역에 속하고 로그인합니다. 영역은 서로 분리되어 있으며 제어하는 사용자만 관리하고 인증할 수 있습니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operator설치된 Operator로 이동합니다.
  3. Red Hat Single Sign-On Operator 프로젝트를 선택합니다.
  4. Keycloak Cryostat 탭 을 선택하고 Keycloak 생성을 클릭합니다.
  5. Keycloak Cryostat 양식 에서 YAML 보기를 선택합니다. 다음과 같이 YAML 파일을 편집합니다.

    kind: KeycloakRealm
    apiVersion: keycloak.org/v1alpha1
    metadata:
      name: ansible-automation-platform-keycloakrealm
      namespace: rh-sso
      labels:
        app: sso
        realm: ansible-automation-platform
    spec:
      realm:
        id: ansible-automation-platform
        realm: ansible-automation-platform
        enabled: true
        displayName: Ansible Automation Platform
      instanceSelector:
        matchLabels:
          app: sso
    Expand

    필드

    description

    metadata.name

    구성 리소스(CR)의 이름에 대한 메타데이터의 고유 값을 설정합니다.

    metadata.namespace

    구성 리소스(CR)의 이름에 대한 메타데이터의 고유 값을 설정합니다.

    metadata.labels.app

    레이블을 고유한 값으로 설정합니다. 클라이언트 CR을 생성할 때 사용됩니다.

    metadata.labels.realm

    레이블을 고유한 값으로 설정합니다. 클라이언트 CR을 생성할 때 사용됩니다.

    spec.realm.id

    영역 이름과 ID를 설정합니다. 이 둘은 동일해야 합니다.

    spec.realm.realm

    영역 이름과 ID를 설정합니다. 이 둘은 동일해야 합니다.

    spec.realm.displayname

    표시할 이름을 설정합니다.

  6. 생성 을 클릭하고 프로세스가 완료될 때까지 기다립니다.

8.3. Keycloak 클라이언트 생성

Keycloak 클라이언트는 Red Hat Single Sign-On을 사용하여 허브 사용자를 인증합니다. 사용자가 요청을 인증하면 Keycloak 클라이언트를 통과합니다. Single Sign-On에서 OAuth 토큰을 검증하거나 발행할 때 클라이언트는 자동화 허브에 대한 응답을 제공하고 사용자가 로그인할 수 있습니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operator설치된 Operator로 이동합니다.
  3. Red Hat Single Sign-On Operator 프로젝트를 선택합니다.
  4. Keycloak 클라이언트 탭을 선택하고 Keycloak 클라이언트 생성 을 클릭합니다.
  5. Keycloak Cryostat 양식에서 YAML 보기를 선택합니다.
  6. 기본 YAML 파일을 다음으로 바꿉니다.

    kind: KeycloakClient
    apiVersion: keycloak.org/v1alpha1
    metadata:
      name: automation-hub-client-secret
      labels:
        app: sso
        realm: ansible-automation-platform
      namespace: rh-sso
    spec:
      realmSelector:
        matchLabels:
          app: sso
          realm: ansible-automation-platform
      client:
        name: Automation Hub
        clientId: automation-hub
        secret: <client-secret>                        
    1
    
        clientAuthenticatorType: client-secret
        description: Client for automation hub
        attributes:
          user.info.response.signature.alg: RS256
          request.object.signature.alg: RS256
        directAccessGrantsEnabled: true
        publicClient: true
        protocol: openid-connect
        standardFlowEnabled: true
        protocolMappers:
          - config:
              access.token.claim: "true"
              claim.name: "family_name"
              id.token.claim: "true"
              jsonType.label: String
              user.attribute: lastName
              userinfo.token.claim: "true"
            consentRequired: false
            name: family name
            protocol: openid-connect
            protocolMapper: oidc-usermodel-property-mapper
          - config:
              userinfo.token.claim: "true"
              user.attribute: email
              id.token.claim: "true"
              access.token.claim: "true"
              claim.name: email
              jsonType.label: String
            name: email
            protocol: openid-connect
            protocolMapper: oidc-usermodel-property-mapper
            consentRequired: false
          - config:
              multivalued: "true"
              access.token.claim: "true"
              claim.name: "resource_access.${client_id}.roles"
              jsonType.label: String
            name: client roles
            protocol: openid-connect
            protocolMapper: oidc-usermodel-client-role-mapper
            consentRequired: false
          - config:
              userinfo.token.claim: "true"
              user.attribute: firstName
              id.token.claim: "true"
              access.token.claim: "true"
              claim.name: given_name
              jsonType.label: String
            name: given name
            protocol: openid-connect
            protocolMapper: oidc-usermodel-property-mapper
            consentRequired: false
          - config:
              id.token.claim: "true"
              access.token.claim: "true"
              userinfo.token.claim: "true"
            name: full name
            protocol: openid-connect
            protocolMapper: oidc-full-name-mapper
            consentRequired: false
          - config:
              userinfo.token.claim: "true"
              user.attribute: username
              id.token.claim: "true"
              access.token.claim: "true"
              claim.name: preferred_username
              jsonType.label: String
            name: <username>
            protocol: openid-connect
            protocolMapper: oidc-usermodel-property-mapper
            consentRequired: false
          - config:
              access.token.claim: "true"
              claim.name: "group"
              full.path: "true"
              id.token.claim: "true"
              userinfo.token.claim: "true"
            consentRequired: false
            name: group
            protocol: openid-connect
            protocolMapper: oidc-group-membership-mapper
          - config:
              multivalued: 'true'
              id.token.claim: 'true'
              access.token.claim: 'true'
              userinfo.token.claim: 'true'
              usermodel.clientRoleMapping.clientId:  'automation-hub'
              claim.name: client_roles
              jsonType.label: String
            name: client_roles
            protocolMapper: oidc-usermodel-client-role-mapper
            protocol: openid-connect
          - config:
              id.token.claim: "true"
              access.token.claim: "true"
              included.client.audience: 'automation-hub'
            protocol: openid-connect
            name: audience mapper
            protocolMapper: oidc-audience-mapper
      roles:
        - name: "hubadmin"
          description: "An administrator role for automation hub"
    1
    이 값을 고유한 값으로 바꿉니다.
  7. 생성 을 클릭하고 프로세스가 완료될 때까지 기다립니다.

자동화 허브를 배포한 후 Red Hat Single Sign-On 클라이언트 업데이트에 설명된 대로 "Valid Redirect URI" 및 "Web Origins"로 클라이언트를 업데이트해야 합니다. 또한 클라이언트는 토큰 매퍼를 사전 구성하지만 인증 공급자가 Red Hat SSO에 그룹 데이터를 제공하지 않는 경우 해당 정보가 전달되는 방법을 반영하도록 그룹 매핑을 업데이트해야 합니다. 일반적으로 사용자 특성에 의해 발생합니다.

8.4. Keycloak 사용자 생성

이 절차에서는 Super Administration 권한으로 자동화 허브에 로그인할 수 있는 hubadmin 역할을 사용하여 Keycloak 사용자를 생성합니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operator설치된 Operator로 이동합니다.
  3. Red Hat Single Sign-On Operator 프로젝트를 선택합니다.
  4. Keycloak Cryostat 탭 을 선택하고 Keycloak 사용자 생성 을 클릭합니다.
  5. Keycloak 사용자 양식에서 YAML 보기를 선택합니다.
  6. 기본 YAML 파일을 다음으로 바꿉니다.

    apiVersion: keycloak.org/v1alpha1
    kind: KeycloakUser
    metadata:
      name: hubadmin-user
      labels:
        app: sso
        realm: ansible-automation-platform
      namespace: rh-sso
    spec:
      realmSelector:
        matchLabels:
          app: sso
          realm: ansible-automation-platform
      user:
        username: hub_admin
        firstName: Hub
        lastName: Admin
        email: hub_admin@example.com
        enabled: true
        emailVerified: false
        credentials:
          - type: password
            value: <ch8ngeme>
        clientRoles:
          automation-hub:
            - hubadmin
  7. 생성 을 클릭하고 프로세스가 완료될 때까지 기다립니다.

사용자가 생성되면 Operator는 다음 이름 지정 패턴을 사용하여 사용자 이름과 암호가 모두 포함된 보안을 생성합니다. credentials -<realm name>-<username>-<namespace > . 이 예에서 인증 정보는 credentials -ansible-automation-platform-hub-admin-rh-sso 라고 합니다. 사용자가 생성되면 Operator는 사용자 암호를 업데이트하지 않습니다. 암호 변경 사항은 시크릿에 반영되지 않습니다.

8.5. Ansible Automation Platform Operator 설치

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. OperatorOperator Hub 로 이동합니다.
  3. Ansible Automation Platform Operator를 검색합니다.
  4. Ansible Automation Platform Operator 프로젝트를 선택합니다.
  5. Operator 타일을 클릭합니다.
  6. 설치를 클릭합니다.
  7. Operator를 설치할 프로젝트를 선택합니다. Operator 권장 네임스페이스 이름을 사용하는 것이 좋습니다.

    1. 권장 항목이 아닌 다른 프로젝트에 Operator를 설치하려면 드롭다운 메뉴에서 Create Project 를 선택합니다.
    2. 프로젝트 이름을 입력합니다.
    3. 생성을 클릭합니다.
  8. 설치를 클릭합니다.
  9. Operator가 설치되면 Operator 보기를 클릭합니다.

8.6. Red Hat Single Sign-On 연결 시크릿 생성

Red Hat Single Sign-On에 대한 연결 시크릿을 생성하려면 다음 절차를 사용하십시오.

프로세스

  1. https://<sso_host>/auth/realms/ansible-automation-platform 로 이동합니다.
  2. public_key 값을 복사합니다.
  3. OpenShift 웹 UI에서 WorkloadsSecrets 로 이동합니다.
  4. ansible-automation-platform 프로젝트를 선택합니다.
  5. 생성을 클릭하고 YAML에서 선택합니다.
  6. 다음 YAML을 편집하여 보안을 생성합니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: automation-hub-sso                       
    1
    
      namespace: ansible-automation-platform
    type: Opaque
    stringData:
      keycloak_host: "keycloak-rh-sso.apps-crc.testing"
      keycloak_port: "443"
      keycloak_protocol: "https"
      keycloak_realm: "ansible-automation-platform"
      keycloak_admin_role: "hubadmin"
      social_auth_keycloak_key: "automation-hub"
      social_auth_keycloak_secret: "client-secret"   
    2
    
      social_auth_keycloak_public_key: >-            
    3
    1
    이 이름은 자동화 허브 인스턴스를 생성할 때 다음 단계에서 사용됩니다.
    2
    자동화 허브용 Keycloak 클라이언트를 생성할 때 보안이 변경된 경우 이 값을 일치하도록 변경해야 합니다.
    3
    Ansible Automation Platform Operator 설치에서 복사한 public_key 값을 입력합니다.
  7. 생성 을 클릭하고 프로세스가 완료될 때까지 기다립니다.

8.7. Ansible Automation Platform Operator를 사용하여 자동화 허브 설치

Ansible Automation Platform Operator를 사용하여 자동화 허브를 설치하려면 다음 절차를 사용하십시오.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operator설치된 Operator로 이동합니다.
  3. Ansible Automation Platform Operator 배포를 선택합니다.
  4. 자동화 허브 탭을 선택합니다.
  5. 자동화 허브 생성을 클릭합니다.
  6. YAML 보기를 선택합니다. YAML은 다음과 유사해야 합니다.

    apiVersion: automationhub.ansible.com/v1beta1
    kind: AutomationHub
    metadata:
      name: private-ah                              
    1
    
      namespace: aap
    spec:
      sso_secret: automation-hub-sso                
    2
    
      pulp_settings:
        verify_ssl: false
      route_tls_termination_mechanism: Edge
      ingress_type: Route
      loadbalancer_port: 80
      file_storage_size: 100Gi
      image_pull_policy: IfNotPresent
      replicas: 1                                   
    3
    
      web_replicas: N
      task_replicas: N
      file_storage_access_mode: ReadWriteMany
      content:
        log_level: INFO
        replicas: 2
      postgres_storage_requirements:
        limits:
          storage: 50Gi
        requests:
          storage: 8Gi
      api:
        log_level: INFO
        replicas: 1
      postgres_resource_requirements:
        limits:
          cpu: 1000m
          memory: 8Gi
        requests:
          cpu: 500m
          memory: 2Gi
      loadbalancer_protocol: http
      resource_manager:
        replicas: 1
      worker:
        replicas: 2
    1
    metadata.name을 인스턴스에 사용할 이름으로 설정합니다.
    2
    3
    web_replicas 또는 task_replicas 를 각각 사용하여 각 배포에 대해 복제본을 확장 또는 축소합니다. 여기서 N은 생성할 복제본 수를 나타냅니다. 또는 복제본 을 사용하여 두 배포에서 모든 Pod를 확장할 수 있습니다. 자세한 내용은 웹 및 작업 Pod 스케일링을 참조하십시오.
    참고

    이 YAML은 SSL 확인을 끕니다(ssl_verify: false). OpenShift에 자체 서명된 인증서를 사용하지 않는 경우 이 설정을 제거할 수 있습니다.

  7. 생성 을 클릭하고 프로세스가 완료될 때까지 기다립니다.

8.8. 자동화 허브 경로 확인

다음 절차를 사용하여 허브 경로를 확인합니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. NetworkingRoutes (경로) 로 이동합니다.
  3. 설치에 사용한 프로젝트를 선택합니다.
  4. private-ah-web-svc 서비스의 위치를 복사합니다. 자동화 허브 인스턴스를 생성할 때 다른 이름을 사용한 경우 서비스 이름이 다릅니다. 나중에 Red Hat Single Sign-On 클라이언트를 업데이트하는 데 사용됩니다.

8.9. Red Hat Single Sign-On 클라이언트 업데이트

자동화 허브를 설치하고 인스턴스의 URL을 확인한 후 Red Hat Single Sign-On을 업데이트하여 Valid Redirect URI 및 Web Origins 설정을 설정해야 합니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operator설치된 Operator로 이동합니다.
  3. RH-SSO 프로젝트를 선택합니다.
  4. Red Hat Single Sign-On Operator 를 클릭합니다.
  5. Keycloak 클라이언트를 선택합니다.
  6. automation-hub-client-secret 클라이언트를 클릭합니다.
  7. YAML 을 선택합니다.
  8. Client YAML을 업데이트하여 Valid Redirect URI 및 Web Origins 설정을 추가합니다.

    redirectUris:
      - 'https://private-ah-ansible-automation-platform.apps-crc.testing/*'
    webOrigins:
      - 'https://private-ah-ansible-automation-platform.apps-crc.testing'
    Expand

    필드

    description

    redirectURIs

    이는 Automation Hub 경로 결정에서 결정된 위치입니다. redirectUris 설정 끝에 /*를 추가해야 합니다.

    webOrigins

    이는 Automation Hub 경로 결정에서 결정된 위치입니다.

    참고

    이러한 설정을 입력할 때 들여쓰기가 올바른지 확인합니다.

  9. 저장을 클릭합니다.

연결을 확인하려면 다음을 수행합니다.

  1. 자동화 허브 경로로 이동합니다.
  2. hub_admin 사용자 자격 증명을 입력하고 로그인합니다.
  3. Red Hat Single Sign-On은 인증을 처리하고 자동화 허브로 다시 리디렉션합니다.

8.10. 추가 리소스

9장. Ansible Automation Platform Operator에 실행 노드 추가

설치 번들을 다운로드하고 설치하여 실행 노드를 사용하여 Ansible Automation Platform Operator를 활성화할 수 있습니다.

사전 요구 사항

  • 자동화 컨트롤러 인스턴스입니다.
  • 수신기 컬렉션 패키지가 설치되어 있습니다.
  • AAP 리포지토리 ansible-automation-platform-2.4-for-rhel-{RHEL-RELEASE-NUMBER}-x86_64-rpms 가 활성화되어 있습니다.

프로세스

  1. Red Hat Ansible Automation Platform에 로그인합니다.
  2. 탐색 패널에서 자동화 실행인프라 인스턴스를 선택합니다.
  3. 추가 를 클릭합니다.
  4. 실행 노드 도메인 이름 또는 IP를 호스트 이름 필드에 입력합니다.
  5. 선택 사항: Listener 포트 필드에 포트 번호를 입력합니다.
  6. 저장을 클릭합니다.
  7. 번들 설치 옆에 있는 다운로드 아이콘 download 을 클릭합니다. 이렇게 하면 다운로드가 시작되고, 파일을 저장하는 위치를 기록해 둡니다.
  8. gz 파일을 압축을 풉니다.

    참고

    install_receptor.yml 플레이북을 실행하려면 Ansible Galaxy: Ansible-galaxy 컬렉션 install -r requirements.yml에서 수신기 컬렉션을 설치해야 합니다.

  9. 사용자 이름 및 SSH 개인 키 파일로 플레이북을 업데이트합니다. ansible_host 는 이전에 입력한 호스트 이름으로 미리 채워집니다.

    all:
       hosts:
          remote-execution:
    	        ansible_host: example_host_name # Same with configured in AAP WebUI
    	        ansible_user: <username> #user provided
    	        Ansible_ssh_private_key_file: ~/.ssh/id_example
  10. 터미널을 열고 플레이북을 저장한 디렉터리로 이동합니다.
  11. 번들 실행을 설치하려면 다음을 수행합니다.

    ansible-playbook install_receptor.yml -i inventory.yml
  12. 설치가 완료되면 생성한 인스턴스에 대한 플레이북을 다운로드하여 다시 실행하여 실행 노드를 업그레이드할 수 있습니다.

검증

수신기 서비스 상태를 확인하려면 다음 명령을 실행합니다.

sudo systemctl status receptor.service

서비스가 활성(실행 중) 상태인지 확인합니다.

새 노드에서 플레이북이 올바르게 실행되는지 확인하려면 다음 명령을 실행합니다.

watch podman ps

추가 리소스

  • 인스턴스 그룹 관리에 대한 자세한 내용은 자동화 컨트롤러 사용자 가이드의 인스턴스 그룹 관리 섹션을 참조하십시오.

10장. Ansible Automation Platform Resource Operator

10.1. 리소스 Operator 개요

리소스 Operator는 플랫폼 게이트웨이 배포를 생성한 후 배포할 수 있는 CR(사용자 정의 리소스)입니다. Resource Operator를 사용하면 YAML 파일을 사용하여 프로젝트, 작업 템플릿 및 인벤토리를 정의할 수 있습니다. 그런 다음 자동화 컨트롤러에서 이러한 리소스를 생성하는 데 이러한 YAML 파일을 사용합니다. 양식 보기를 통해 YAML 코드의 키와 값을 입력하라는 메시지를 표시하는 YAML을 생성할 수 있습니다. 또는 YAML을 직접 사용하려면 YAML 보기를 선택할 수 있습니다.

현재 Resource Operator에서 제공하는 두 가지 사용자 정의 리소스가 있습니다.

  • AnsibleJob: Kubernetes 시크릿(자동화 컨트롤러 호스트 URL, 토큰)에 지정된 자동화 컨트롤러 인스턴스에서 작업을 시작합니다.
  • jobtemplate: 지정된 자동화 컨트롤러 인스턴스에서 작업 템플릿을 생성합니다.

10.2. Resource Operator 사용

Resource Operator 자체는 사용자가 오브젝트를 생성할 때까지 아무 작업도 수행하지 않습니다. 사용자가 AutomationControllerProject 또는 AnsibleJob 리소스를 생성하는 즉시 Resource Operator가 해당 오브젝트 처리를 시작합니다.

사전 요구 사항

  • 선택한 Kubernetes 기반 클러스터를 설치합니다.
  • automation-controller-operator 를 사용하여 자동화 컨트롤러를 배포합니다.

클러스터에 automation-controller-resource-operator 를 설치한 후 자동화 컨트롤러 인스턴스에 대한 연결 정보를 사용하여 Kubernetes(k8s) 시크릿을 생성해야 합니다. 그런 다음 Resource Operator를 사용하여 k8s 리소스를 생성하여 자동화 컨트롤러 인스턴스를 관리할 수 있습니다.

10.3. Resource Operator를 플랫폼 게이트웨이에 연결

플랫폼 게이트웨이를 사용하여 Resource Operator를 연결하려면 자동화 컨트롤러 인스턴스에 대한 연결 정보로 k8s 시크릿을 생성해야 합니다.

참고

API 또는 UI를 통해서만 자신의 사용자에 대한 OAuth 2 토큰을 생성할 수 있습니다. 즉, 사용자 프로필에서 토큰만 구성하거나 볼 수 있습니다.

프로세스

플랫폼 게이트웨이 UI에서 사용자에 대한 OAuth2 토큰을 생성하려면 다음을 수행합니다.

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. 탐색 패널에서 Access ManagementUsers 를 선택합니다.
  3. 토큰을 생성할 사용자 이름을 선택합니다.
  4. 토큰자동화 실행선택
  5. 토큰 생성을 클릭합니다.
  6. 애플리케이션을 비워 둘 수 있습니다. 설명을 추가하고 범위에 대해 읽기 또는 쓰기를 선택합니다.
참고

토큰을 생성할 때 유효한 사용자를 제공해야 합니다. 그러지 않으면 사용자를 지정하지 않거나 존재하지 않는 사용자 이름을 제공하여 명령을 실행하려고 했다는 오류 메시지가 표시됩니다.

10.4. Resource Operator에 대한 자동화 컨트롤러 연결 시크릿 생성

Resource Operator에서 연결 정보를 사용할 수 있도록 하려면 토큰 및 호스트 값을 사용하여 k8s 시크릿을 생성합니다.

프로세스

  1. 다음은 연결 보안에 대한 YAML의 예입니다. 다음 예제를 파일에 저장합니다(예: automation-controller-connection-secret.yml ).

    apiVersion: v1
    kind: Secret
    metadata:
      name: controller-access
      type: Opaque
    stringData:
      token: <generated-token>
      host: https://my-controller-host.example.com/
  2. 호스트 및 토큰 값으로 파일을 편집합니다.
  3. kubectl create 명령을 실행하여 클러스터에 적용합니다.
kubectl create -f controller-connection-secret.yml

10.5. AnsibleJob 생성

AnsibleJob 리소스를 생성하여 자동화 컨트롤러에서 자동화 작업을 시작합니다.

프로세스

  1. 시작하려는 연결 시크릿 및 작업 템플릿을 지정합니다.

    apiVersion: tower.ansible.com/v1alpha1
    kind: AnsibleJob
    metadata:
      generateName: demo-job-1 # generate a unique suffix per 'kubectl create'
    spec:
      connection_secret: controller-access
      job_template_name: Demo Job Template
  2. 작업에 사용할 수 있도록 인벤토리, 추가 변수, 시간 등의 기능을 구성합니다.

    spec:
      connection_secret: controller-access
      job_template_name: Demo Job Template
      inventory: Demo Inventory                    # Inventory prompt on launch needs to be enabled
      runner_image: quay.io/ansible/controller-resource-runner
      runner_version: latest
      job_ttl: 100
      extra_vars:                                  # Extra variables prompt on launch needs to be enabled
         test_var: test
      job_tags: "provision,install,configuration"  # Specify tags to run
      skip_tags: "configuration,restart"           # Skip tasks with a given tag
    참고

    인벤토리 및 추가 변수를 구성하는 경우 시작 시 프롬프트를 활성화해야 합니다. 자동화 컨트롤러 UI에서 시작 시 프롬프트 를 활성화하려면 리소스템플릿 페이지에서 템플릿을 선택하고 인벤토리변수 섹션 옆에 있는 시작 시 프롬프트 확인란을 선택합니다.

  3. job_template_name 대신 workflow_template_name 을 지정하여 AnsibleJob 오브젝트로 워크플로우 작업 템플릿을 시작합니다.

    apiVersion: tower.ansible.com/v1alpha1
    kind: AnsibleJob
    metadata:
      generateName: demo-job-1 # generate a unique suffix per 'kubectl create'
    spec:
      connection_secret: controller-access
      workflow_template_name: Demo Workflow Template

10.6. JobTemplate 생성

  • JobTemplate 리소스를 생성하여 자동화 컨트롤러에서 작업 템플릿을 생성합니다.

    apiVersion: tower.ansible.com/v1alpha1
    kind: JobTemplate
    metadata:
      name: jobtemplate-4
    spec:
      connection_secret: controller-access
      job_template_name: ExampleJobTemplate4
      job_template_project: Demo Project
      job_template_playbook: hello_world.yml
      job_template_inventory: Demo Inventory

법적 공지

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동