OpenShift Container Platform에 설치


Red Hat Ansible Automation Platform 2.6

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 에서 기술 지원에 문의하여 요청을 열 수 있습니다.

시스템 관리자는 Ansible Automation Platform Operator를 사용하여 OpenShift 환경에 새 Ansible Automation Platform 인스턴스를 배포할 수 있습니다.

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.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 시스템 요구 사항 및 인프라 토폴로지에 대한 자세한 내용은 테스트된 배포 모델Operator 토폴로지 를 참조하십시오.

1.1.2. OpenShift Container Platform 버전 호환성

Ansible Automation Platform 2.6을 설치하는 Ansible Automation Platform Operator는 OpenShift Container Platform 4.12에서 4.17 이상 버전으로 사용할 수 있습니다.

1.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를 설치할 수 있습니다. 이에 대한 도움말은 OpenShift Container Platform CLI에서 Red Hat Ansible Automation Platform Operator 설치를 참조하십시오.

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

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

1.1.5. Ansible Automation Platform Operator CSRF 관리

Ansible Automation Platform 버전 2.6에서 OpenShift Container Platform의 Ansible Automation Platform Operator는 OpenShift 경로를 생성하고 CSRF(Cross-site request forgery) 설정을 자동으로 구성합니다.

외부 수신을 사용하는 경우 수신에서 CSRF를 구성해야 합니다. 이에 대한 도움말 을 보려면 플랫폼 게이트웨이 Operator 수신에 대한 CSRF 설정 구성 을 참조하십시오.

중요

이전 버전에서는 자동화 컨트롤러 사용자 인터페이스를 통해 CSRF를 구성할 수 있었습니다. 버전 2.6 자동화 컨트롤러 설정은 여전히 존재하지만 플랫폼 게이트웨이의 CSRF 설정에는 영향을 미치지 않습니다.

다음 표는 어떤 구성 요소에 적용할 수 있는 설정을 명확히 하는 데 도움이 됩니다.

Expand
UI 설정적용 가능

서브스크립션

자동화 컨트롤러

플랫폼 게이트웨이

플랫폼 게이트웨이

사용자 환경 설정

사용자 인터페이스

시스템

자동화 컨트롤러

Job

자동화 컨트롤러

로깅

자동화 컨트롤러

문제 해결

자동화 컨트롤러

1.1.6. 추가 리소스

OpenShift Container Platform OperatorHub에 대한 자세한 내용은 OpenShift Container Platform 설명서를 참조하십시오.

다음 절차에 따라 Red Hat OpenShift Container Platform의 Operator 섹션을 통해 Red Hat Ansible Automation Platform Operator 배포, 적절한 업데이트 채널 및 설치 모드를 선택한 다음 성공적인 배포를 확인하는 방법을 안내합니다.

Ansible Automation Platform Operator를 설치할 때 네임스페이스 범위 Operator 또는 클러스터 범위 Operator를 선택할 수 있습니다. 이는 선택한 업데이트 채널, stable-2.x 또는 cluster-scoped-2.x에 따라 다릅니다.

네임스페이스 범위 Operator는 하나의 네임스페이스로 제한되므로 보안을 강화합니다. 클러스터 범위의 Operator는 다양한 권한을 부여하는 여러 네임스페이스를 확장합니다.

동일한 Ansible Automation Platform Operator 버전으로 여러 Ansible Automation Platform 인스턴스를 관리하는 경우 단일 Operator를 사용하여 클러스터의 모든 Ansible Automation Platform 사용자 정의 리소스를 관리하는 클러스터 범위 Operator를 사용합니다.

동일한 클러스터에 Operator 버전이 여러 개 필요한 경우 namespace-scoped Operator를 사용해야 합니다. Operator 및 배포는 동일한 네임스페이스를 공유합니다. 이는 Operator 로그가 해당 네임스페이스의 사용자 정의 리소스에만 관련되어 있기 때문에 디버깅할 때도 유용할 수 있습니다.

참고

Ansible Automation Platform Operator 시스템 요구 사항 및 인프라 토폴로지에 대한 자세한 내용은 테스트된 배포 모델Operator 토폴로지 를 참조하십시오.

네임스페이스 또는 클러스터 범위 Operator 설치에 대한 도움말은 다음 절차를 참조하십시오.

중요

OpenShift 클러스터의 기본 네임스페이스에 Ansible Automation Platform을 배포할 수 없습니다. aap 네임스페이스를 사용하는 것이 좋습니다. 사용자 지정 네임스페이스를 사용할 수 있지만 Ansible Automation Platform만 실행해야 합니다.

사전 요구 사항

  • 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-scoped: Ansible Automation Platform 사용자 정의 리소스 및 모든 네임스페이스의 배포를 관리하는 단일 네임스페이스에 Ansible Automation Platform Operator를 설치합니다. Ansible Automation Platform Operator에는 클러스터의 모든 네임스페이스에 대한 관리자 권한이 필요합니다.
  5. 설치 모드, 설치된 네임스페이스승인 전략을 선택합니다.
  6. 설치를 클릭합니다.

검증

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

  • View Operator 를 클릭하여 새로 설치된 Ansible Automation Platform Operator를 확인하고 다음 Operator 사용자 정의 리소스가 있는지 확인합니다.
Expand
자동화 컨트롤러자동화 허브이벤트 기반 Ansible (EDA)Red Hat Ansible Lightspeed
  • Automation Controller
  • Automation Controller 백업
  • Automation Controller 복원
  • Automation Controller Mesh Ingress
  • Automation Hub
  • Automation Hub Backup
  • Automation Hub Restore
  • EDA
  • EDA 백업
  • EDA 복원
  • Ansible Lightspeed
  • Ansible Automation Platform Operator에 Succeeded 상태가 표시되는지 확인합니다.

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

1.3.1. 네임스페이스에 Ansible Automation Platform Operator 설치

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

중요

OpenShift 클러스터의 기본 네임스페이스에 Ansible Automation Platform을 배포할 수 없습니다. aap 네임스페이스를 사용하는 것이 좋습니다. 사용자 지정 네임스페이스를 사용할 수 있지만 Ansible Automation Platform만 실행해야 합니다.

사전 요구 사항

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

프로세스

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

    oc new-project ansible-automation-platform
    Copy to Clipboard Toggle word wrap
  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.6'
      installPlanApproval: Automatic
      name: ansible-automation-platform-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
    ---
    Copy to Clipboard Toggle word wrap

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

  4. oc apply 명령을 실행하여 sub.yaml 파일에 지정된 오브젝트를 생성합니다.

    oc apply -f sub.yaml
    Copy to Clipboard Toggle word wrap
  5. oc get csv -n ansible-automation-platform 명령을 사용하기 전에 CSV PHASE에서 "Succeeded"를 보고하는지 확인합니다.

    oc get csv -n ansible-automation-platform
    
    NAME                               DISPLAY                       VERSION              REPLACES                           PHASE
    aap-operator.v2.6.0-0.1728520175   Ansible Automation Platform   2.6.0+0.1728520175   aap-operator.v2.6.0-0.1727875185   Succeeded
    Copy to Clipboard Toggle word wrap
  6. ansible-automation-platform 네임스페이스에 example 이라는 AnsibleAutomationPlatform 오브젝트를 생성합니다.

    Ansible Automation Platform 및 해당 구성 요소를 예에서 변경하려면 metadata: 섹션의 name 필드를 편집하고 예제를 사용할 이름으로 교체합니다.

    oc apply -f - <<EOF
    apiVersion: aap.ansible.com/v1alpha1
    kind: AnsibleAutomationPlatform
    metadata:
      name: example
      namespace: ansible-automation-platform
    spec:
      # Platform
      image_pull_policy: IfNotPresent
      # Components
      controller:
        disabled: false
      eda:
        disabled: false
      hub:
        disabled: false
        ## Modify to contain your RWM storage class name
        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
    EOF
    Copy to Clipboard Toggle word wrap

네임스페이스 관리자는 Ansible Automation Platform 게이트웨이를 사용하여 OpenShift 환경에서 새 Ansible Automation Platform 구성 요소를 관리할 수 있습니다.

Ansible Automation Platform 게이트웨이는 Ansible Automation Platform 사용자 정의 리소스를 사용하여 다음 Ansible Automation Platform 구성 요소를 통합 사용자 인터페이스에 관리하고 통합합니다.

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

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

참고

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

Ansible Automation Platform Operator 및 일부 또는 모든 Ansible Automation Platform 구성 요소가 설치된 경우 기존 Ansible Automation Platform 구성 요소를 사용하여 플랫폼 게이트웨이 배포를 참조하십시오.

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

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

프로세스

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

    • Ansible Automation Platform 인스턴스를 배포할 때 통합이 작동하려면 auto_update 가 기존 자동화 컨트롤러 인스턴스의 기본값 false 로 설정되어 있는지 확인합니다.
  7. YAML 보기를 클릭하고 다음을 복사합니다.

    apiVersion: aap.ansible.com/v1alpha1
    kind: AnsibleAutomationPlatform
    metadata:
      name: example-aap
      namespace: aap
    spec:
      database:
        resource_requirements:
          requests:
            cpu: 200m
            memory: 512Mi
        storage_requirements:
          requests:
            storage: 100Gi
    
      # 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
    Copy to Clipboard Toggle word wrap
    1. 새 구성 요소의 경우 이름을 지정하지 않으면 기본 이름이 생성됩니다.
  8. 생성을 클릭합니다.
  9. 새 인스턴스에 액세스하려면 플랫폼 게이트웨이 액세스를 참조하십시오.

    참고

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

2.3. OpenShift Container Platform UI를 통해 플랫폼 게이트웨이에 액세스

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

프로세스

  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. Next를 클릭합니다. 이렇게 하면 분석 페이지로 리디렉션됩니다.
  8. Next를 클릭합니다.
  9. I agree to the terms of the license agreement 확인란을 선택합니다.
  10. Next를 클릭합니다.

검증

이제 플랫폼 게이트웨이 사용자 인터페이스에 액세스할 수 있습니다.

문제 해결

Ansible Automation Platform에 액세스할 수 없는 경우 문제 해결 및 디버깅 에 대한 도움말은 플랫폼 게이트웨이에서 자주 묻는 질문을 참조하십시오.

2.4. OpenShift Container Platform CLI를 통해 플랫폼 게이트웨이에 액세스

OpenShift Container Platform CLI를 사용하여 생성한 자동화 컨트롤러의 웹 주소 및 암호를 가져올 수 있습니다. 플랫폼 게이트웨이에 로그인하려면 웹 주소와 암호가 필요합니다.

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

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

프로세스

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

    oc get routes -n <platform_namespace>
    Copy to Clipboard Toggle word wrap

    검증

    다음 예에서는 예제 플랫폼 게이트웨이가 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
Copy to Clipboard Toggle word wrap

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

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

AnsibleAutomationPlatform 개체의 플랫폼 게이트웨이 인스턴스의 YAML 블록은 이름admin_user 키에 값을 할당합니다.

프로세스

  1. 다음 명령에서 이러한 값을 사용하여 플랫폼 게이트웨이 인스턴스의 암호를 가져옵니다.

    oc get secret/<your instance name>-<admin_user>-password -o yaml
    Copy to Clipboard Toggle word wrap
  2. admin_user 의 기본값은 admin 입니다. AnsibleAutomationPlatform 오브젝트에서 관리자 사용자 이름을 변경한 경우 명령을 수정합니다.

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

    oc get secret/example-admin-password -o yaml
    Copy to Clipboard Toggle word wrap

    플랫폼 게이트웨이 인스턴스의 base64 인코딩 암호는 출력의 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
    Copy to Clipboard Toggle word wrap

2.4.3. 플랫폼 게이트웨이 암호 디코딩

게이트웨이 암호를 가져온 후 base64에서 디코딩해야 합니다.

프로세스

  • 다음 명령을 실행하여 base64에서 암호를 디코딩합니다.
oc get secret/example-admin-password -o jsonpath={.data.password} | base64 --decode
Copy to Clipboard Toggle word wrap

3장. Ansible Automation Platform 라이센스, 업데이트 및 지원 관리

Ansible은 오픈 소스 소프트웨어 프로젝트이며 Ansible 소스 코드에 설명된 대로 GNU General Public License 버전 3에 따라 라이센스가 부여됩니다.

Ansible Automation Platform을 설치하기 전에 유효한 서브스크립션이 연결되어 있어야 합니다.

3.1. 평가판 및 평가

Ansible Automation Platform을 실행하려면 서브스크립션이 필요합니다. 무료 평가판 서브스크립션에 가입하여 시작할 수 있습니다.

  • Ansible Automation Platform 평가판 서브스크립션은 Red Hat 제품 평가판 센터에서 사용할 수 있습니다.
  • 평가판 서브스크립션 또는 Ansible Automation Platform 평가 중에 지원이 포함되어 있지 않습니다.

3.2. 라이센스의 노드 수

Ansible Automation Platform 서브스크립션은 서브스크립션의 일부로 관리할 수 있는 관리형 노드 수를 정의합니다.

서브스크립션에 대한 관리형 노드 요구 사항에 대한 자세한 내용은 Red Hat Ansible Automation Platform 오퍼링의 일부로 정의된 "관리 노드" 를 참조하십시오.

참고

Ansible은 노드 수를 재활용하거나 자동화된 호스트를 재설정하지 않습니다.

3.3. 서브스크립션 유형

Red Hat Ansible Automation Platform은 다양한 수준의 지원과 머신 수를 연간 서브스크립션으로 제공합니다.

모든 서브스크립션 수준에는 자동화 컨트롤러, Ansible 및 Ansible Automation Platform의 기타 구성 요소의 정기적인 업데이트 및 릴리스가 포함됩니다.

자세한 내용은 Red Hat 고객 포털 또는 Ansible 사이트를 통해 Ansible 에 문의하십시오.

3.4. Red Hat Ansible Automation Platform 서브스크립션 연결

Red Hat Ansible Automation Platform을 설치하기 전에 모든 노드에 유효한 서브스크립션이 있어야 합니다.

참고

SCA(Simple Content Access)가 모든 Red Hat 계정의 기본 서브스크립션 방법입니다. SCA를 사용하면 콘텐츠에 액세스하려면 시스템을 RHSM(Red Hat Subscription Management) 또는 Satellite에 등록해야 합니다. 기존 풀 기반 서브스크립션 연결 명령(예: subscription-manager attach --pool 또는 subscription-manager attach --auto)이 더 이상 필요하지 않습니다. 자세한 내용은 Simple Content Access 를 참조하십시오.

프로세스

  1. Red Hat 서브스크립션 관리에 시스템을 등록합니다.

    $ sudo subscription-manager register --username <$INSERT_USERNAME_HERE> --password <$INSERT_PASSWORD_HERE>
    Copy to Clipboard Toggle word wrap

    SCA(Simple Content Access)를 사용하면 Ansible Automation Platform 콘텐츠에 액세스하는 데 필요한 유일한 단계가 등록됩니다.

    참고

    기존 서브스크립션 풀을 계속 사용하는 계정의 경우 문제 해결 섹션에 표시된 명령을 사용하여 서브스크립션을 수동으로 연결해야 할 수 있습니다.

검증

  1. 시스템에서 서브스크립션 정보를 새로 고칩니다.

    $ sudo subscription-manager refresh
    Copy to Clipboard Toggle word wrap
  2. 등록을 확인합니다.

    $ sudo subscription-manager identity
    Copy to Clipboard Toggle word wrap

    이 명령은 시스템 ID, 이름, 조직 이름, 조직 ID를 표시하여 성공적인 등록을 확인합니다.

문제 해결

  • SCA를 사용하지 않는 레거시 계정의 경우 서브스크립션을 수동으로 연결해야 할 수 있습니다.

    $ sudo subscription-manager list --available --all | grep "Ansible Automation Platform" -B 3 -A 6
    $ sudo subscription-manager attach --pool=<pool_id>
    Copy to Clipboard Toggle word wrap
    참고

    MCT4022를 pool_id 로 사용하지 마십시오. 서브스크립션 연결이 실패할 수 있기 때문입니다.

  • SCA를 사용하지 않는 레거시 계정의 경우 Ansible Automation Platform 설치 프로그램과 함께 번들된 특정 패키지를 찾을 수 없거나 구성 메시지에 의해 비활성화된 리포지토리 가 표시되는 경우 다음 단계를 사용하여 필요한 리포지토리를 식별하고 활성화합니다.

    1. 사용 가능한 리포지토리를 나열합니다.

      $ sudo subscription-manager repos --list | grep -i ansible-automation-platform
      Copy to Clipboard Toggle word wrap
    2. RHEL 버전, Ansible Automation Platform 버전 및 아키텍처(예: ansible-automation-platform-2.6-for-rhel-9-x86_64-rpms)와 일치하는 리포지토리 이름을 확인합니다.
    3. 리포지토리를 활성화합니다.

      $ sudo subscription-manager repos --enable <repository_name>
      Copy to Clipboard Toggle word wrap

3.5. 매니페스트 파일 가져오기

Red Hat 서브스크립션 관리의 서브스크립션 할당 섹션에서 서브스크립션 매니페스트를 받을 수 있습니다. 서브스크립션 할당을 얻은 후 매니페스트 파일을 다운로드하여 업로드하여 Ansible Automation Platform을 활성화할 수 있습니다.

시작하려면 관리자 계정을 사용하여 Red Hat 고객 포털에 로그인하고 이 섹션의 절차를 따르십시오.

3.5.1. 서브스크립션 할당 생성

새 서브스크립션 할당을 생성하면 현재 오프라인 또는 Air-gapped 시스템에 대한 서브스크립션 및 인타이틀먼트를 별도로 설정할 수 있습니다. 이는 매니페스트를 다운로드하여 Ansible Automation Platform에 업로드하기 전에 필요합니다.

프로세스

  1. 서브스크립션 할당 페이지에서 새 서브스크립션 할당 을 클릭합니다.
  2. 나중에 찾을 수 있도록 할당 이름을 입력합니다.
  3. 유형: Satellite 6.16 을 관리 애플리케이션으로 선택합니다.
  4. 생성을 클릭합니다.

3.5.2. 서브스크립션 할당에 서브스크립션 추가

할당이 생성되면 Ansible Automation Platform을 올바르게 실행하는 데 필요한 서브스크립션을 추가할 수 있습니다. 매니페스트를 다운로드하여 Ansible Automation Platform에 추가하려면 이 단계가 필요합니다.

프로세스

  1. 서브스크립션 할당 페이지에서 서브스크립션을 추가할 서브스크립션 할당 의 이름을 클릭합니다.
  2. 서브스크립션 탭을 클릭합니다.
  3. 서브스크립션 추가를 클릭합니다.
  4. 추가할 Ansible Automation Platform 인타이틀먼트 수를 입력합니다.
  5. 제출을 클릭하세요.

3.5.3. 매니페스트 파일 다운로드

할당이 생성되고 적절한 서브스크립션이 있는 경우 Red Hat 서브스크립션 관리에서 매니페스트를 다운로드할 수 있습니다.

프로세스

  1. 서브스크립션 할당 페이지에서 매니페스트를 생성하려는 서브스크립션 할당 의 이름을 클릭합니다.
  2. 서브스크립션 탭을 클릭합니다.
  3. Export Manifest 를 클릭하여 매니페스트 파일을 다운로드합니다.

    이렇게 하면 파일 매니페스트<allocation name>_<date>.zip_ 파일이 기본 다운로드 폴더에 다운로드됩니다.

3.6. Red Hat Ansible Automation Platform 활성화

조직 관리자인 경우 서비스 계정을 생성하고 클라이언트 ID 및 클라이언트 시크릿을 사용하여 서브스크립션을 활성화해야 합니다.

관리 액세스 권한이 없는 경우 클라이언트 ID 및 클라이언트 시크릿 필드에 Red Hat 사용자 이름과 암호를 입력하여 Ansible Automation Platform 인스턴스에 서브스크립션을 찾아 추가할 수 있습니다.

참고

클라이언트 ID와 클라이언트 시크릿을 입력했지만 서브스크립션을 찾을 수 없는 경우 서비스 계정에 올바른 권한이 설정되어 있지 않을 수 있습니다. 서비스 계정에 대한 자세한 내용 및 문제 해결 지침은 서비스 계정 자격 증명을 통해 인증하도록 Ansible Automation Platform 구성을 참조하십시오.

Red Hat Satellite의 경우 아래 필드에 Satellite 사용자 이름과 Satellite 암호를 입력합니다.

Red Hat Ansible Automation Platform은 사용 가능한 서브스크립션 또는 서브스크립션 매니페스트를 사용하여 Ansible Automation Platform 사용을 승인합니다. 서브스크립션을 얻으려면 다음 중 하나를 수행할 수 있습니다.

  1. Ansible Automation Platform을 시작할 때 Red Hat 사용자 이름 및 암호, 서비스 계정 인증 정보 또는 Satellite 인증 정보를 사용합니다.
  2. Red Hat Ansible Automation Platform 인터페이스를 사용하거나 Ansible 플레이북에서 수동으로 서브스크립션 매니페스트 파일을 업로드합니다.

3.6.1. 인증 정보를 사용하여 활성화

Ansible Automation Platform이 처음 시작되면 Ansible Automation Platform 서브스크립션 화면이 자동으로 표시됩니다. 조직 관리자인 경우 Red Hat 서비스 계정을 사용하여 Ansible Automation Platform으로 직접 서브스크립션을 검색하고 가져올 수 있습니다.

관리 액세스 권한이 없는 경우 각각 클라이언트 ID 및 클라이언트 시크릿 필드에 Red Hat 사용자 이름과 암호를 입력하여 Ansible Automation Platform 인스턴스에 서브스크립션을 찾아 추가할 수 있습니다.

참고

처음 로그인할 때 Automation Analytics가 기본적으로 선택됩니다. 이를 통해 Red Hat은 훨씬 더 나은 사용자 환경을 제공하여 제품을 개선할 수 있습니다. Ansible Automation Platform을 활성화한 후 다음을 수행하여 옵트아웃할 수 있습니다.

  1. 탐색 패널에서 SettingsAutomation ExecutionSystem 을 선택합니다.
  2. 자동화 분석용 데이터 수집 옵션을 지웁니다.
  3. 저장을 클릭합니다.

프로세스

  1. Red Hat Ansible Automation Platform에 로그인합니다.
  2. 서비스 계정 / Red Hat Satellite 를 선택합니다.
  3. 클라이언트 ID / Satellite 사용자 이름과 클라이언트 시크릿 / Satellite 암호를 입력합니다.
  4. 서브스크립션 목록에서 서브스크립션 을 선택합니다.

    참고

    클러스터 노드가 서브스크립션 관리자를 통해 Satellite에 등록된 경우 Satellite 사용자 이름과 암호를 사용할 수도 있습니다.

  5. 최종 사용자 라이센스 계약을 검토하고 최종 사용자 라이센스 계약에 동의함을 선택합니다.
  6. 완료 를 클릭합니다.

검증

서브스크립션이 승인되면 서브스크립션 세부 정보가 표시됩니다. Compliant 상태는 서브스크립션이 서브스크립션 수 내에서 자동화된 호스트 수를 준수함을 나타냅니다. 그렇지 않으면 서브스크립션의 호스트 수를 초과했음을 나타내는 상태가 Out of Compliance 로 표시됩니다. 표시되는 기타 중요한 정보는 다음과 같습니다.

자동화된 호스트
라이센스 수를 사용하는 작업에 의해 자동화된 호스트 수
가져온 호스트
모든 인벤토리 소스를 고려한 호스트 수(남은 호스트에는 영향을 미치지 않음)
남아 있는 호스트
총 호스트 수에서 자동화된 호스트 수를 뺀 수

3.6.2. 매니페스트 파일로 활성화

서브스크립션 매니페스트가 있는 경우 Red Hat Ansible Automation Platform 인터페이스를 사용하여 매니페스트 파일을 업로드할 수 있습니다.

처음 로그인할 때 Automation Analytics가 기본적으로 선택됩니다. 이를 통해 Red Hat은 훨씬 더 나은 사용자 환경을 제공하여 제품을 개선할 수 있습니다. 그러나 Ansible Automation Platform이 활성화된 후 자동화 분석을 비활성화할 수 있습니다. 옵트아웃하려면 탐색 패널에서 SettingsAutomation ExecutionSystem 을 선택하고 자동화 분석의 데이터 수집 옵션을 선택 해제한 다음 저장을 클릭합니다.

사전 요구 사항

Red Hat 고객 포털에서 내보낸 Red Hat 서브스크립션 매니페스트 파일이 있어야 합니다. 자세한 내용은 매니페스트 파일 가져오기를 참조하십시오.

프로세스

  1. Red Hat Ansible Automation Platform에 로그인합니다.
  2. 매니페스트 파일을 즉시 입력하라는 메시지가 표시되지 않으면 SettingsSubscription.
  3. 서브스크립션 매니페스트 를 선택합니다.
  4. 찾아보기 를 클릭하고 매니페스트 파일을 선택합니다.
  5. 최종 사용자 라이센스 계약을 검토하고 최종 사용자 라이센스 계약에 동의함을 선택합니다.
  6. 완료 를 클릭합니다.

    참고

    BROWSE 버튼이 라이센스 페이지에서 비활성화된 경우 USERNAMEPASSWORD 필드를 지웁니다.

검증

서브스크립션이 승인되면 서브스크립션 세부 정보가 표시됩니다. Compliant 상태는 서브스크립션이 서브스크립션 수 내에서 자동화된 호스트 수를 준수함을 나타냅니다. 그렇지 않으면 서브스크립션의 호스트 수를 초과했음을 나타내는 상태가 Out of Compliance 로 표시됩니다. 표시되는 기타 중요한 정보는 다음과 같습니다.

자동화된 호스트
라이센스 수를 사용하는 작업에 의해 자동화된 호스트 수
가져온 호스트
모든 인벤토리 소스를 고려한 호스트 수(남은 호스트에는 영향을 미치지 않음)
남아 있는 호스트
총 호스트 수에서 자동화된 호스트 수를 뺀 수

Ansible Automation Platform Operator를 설치한 후 중첩된 구성 요소에 대한 구성 옵션을 설정하여 배포를 사용자 지정할 수 있습니다. 상위 자동화 Ansible Platform CR(사용자 정의 리소스)에서 이러한 매개변수를 정의해야 합니다. Operator는 플랫폼의 각 구성 요소에 구성을 자동으로 해제합니다.

사용자 정의 리소스(CR)를 확인하여 Ansible Automation Platform Operator의 구성 매개변수를 확인할 수 있습니다. 매개변수는 YAML 스키마에 나열됩니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operators(운영자) InstalledOperators 로 이동합니다.
  3. Ansible Automation Platform Operator 배포를 선택합니다.
  4. Ansible Automation Platform 탭으로 이동하여 CR 이름을 클릭합니다.
  5. YAML 보기 탭으로 전환하여 구성을 보고 편집합니다. 사용 가능한 매개변수는 YAML 스키마에 나열됩니다.

    참고

    스키마 패널을 볼 수 없는 경우 사이드 바를 닫거나 최소화했을 수 있습니다. 보기 사이드바를 클릭하여 다시 엽니다.

4.2. 사용자 정의 리소스 정의 구성 매개변수 검색

Ansible Automation Platform Operator는 각각 고유한 구성 매개변수를 사용하여 여러 CR(사용자 정의 리소스)을 관리합니다. oc explain 명령을 사용하여 AnsibleAutomationPlatform CR 및 해당 중첩된 구성 요소에 사용 가능한 모든 구성 옵션을 검색합니다.

프로세스

  1. 최상위 CR에 사용 가능한 모든 구성 매개변수를 보려면 다음을 실행합니다.

    oc explain ansibleautomationplatform.spec
    Copy to Clipboard Toggle word wrap
  2. 특정 중첩 섹션을 보려면 직접 쿼리합니다.

    oc explain automationcontroller.spec.postgres_configuration_secret
    oc explain automationcontroller.spec.route_tls_termination_mechanism
    Copy to Clipboard Toggle word wrap
  3. 모든 중첩된 필드를 한 번에 검색하려면 --recursive 플래그를 사용합니다.

    oc explain automationcontroller.spec --recursive
    Copy to Clipboard Toggle word wrap

4.3. 중첩된 구성 요소에서 매개변수 정의

자동화 컨트롤러의 resource_requirements 와 같은 매개변수를 정의하려면 구성을 상위 Ansible Automation Platform CR YAML에 추가합니다. 이렇게 하면 Ansible Automation Platform CR이 배포에 대한 단일 정보 소스가 됩니다.

프로세스

  1. OpenShift Container Platform 4에 로그인합니다.
  2. Operators(운영자) InstalledOperators 로 이동합니다.
  3. Ansible Automation Platform Operator 배포를 선택합니다.
  4. Ansible Automation Platform 탭으로 이동하여 CR 이름을 클릭합니다.
  5. YAML 보기 탭에서 spec 섹션을 찾습니다.
  6. 중첩된 resource_requirements 매개변수 및 해당 값을 사용하여 automationcontroller 매개변수를 추가합니다.

    spec:
      database:
        resource_requirements:
          requests:
            cpu: 200m
            memory: 512Mi
        storage_requirements:
          requests:
            storage: 100Gi
    Copy to Clipboard Toggle word wrap
  7. 저장을 클릭하여 변경 사항을 적용합니다. Operator는 이 구성을 자동화 컨트롤러 구성 요소에 자동으로 적용합니다.

4.4. 리소스 요구 사항 사용자 정의

Ansible Automation Platform 구성 요소에 대한 리소스 요구 사항을 사용자 지정하여 특정 환경에서 성능 및 리소스 할당을 최적화합니다.

다음 섹션에서는 각 구성 요소에 대한 기본 리소스 요구 사항이 있는 완전한 코드 블록을 제공합니다. 리소스 요구 사항을 사용자 정의하는 주요 이유는 다음과 같습니다.

  • 성능 튜닝: 많은 워크로드를 수행하는 구성 요소에 대한 리소스 제한을 늘립니다.
  • 클러스터 관리자가 적용하는 ResourceQuota 를 준수하기 위해 다음을 수행합니다.
  • 리소스 제한 환경: 개발 또는 테스트 환경에서 클러스터 리소스를 보존하기 위해 리소스 요청을 분리합니다.
  • 환경별: 리소스 할당을 OpenShift 또는 Kubernetes 클러스터 노드의 용량과 정렬합니다.

이 참조를 시작점으로 사용할 수 있습니다. Ansible Automation Platform 인스턴스의 전체 코드 블록을 복사하고 변경하려는 구성 요소의 값을 수정합니다. 이 방법은 모든 기본 설정이 올바르게 적용되도록 하여 배포 오류의 위험을 줄이는 데 도움이 됩니다.

참고

매개변수를 추가할 때 Ansible Automation Platform CR(사용자 정의 리소스)에만 추가할 수 있으며 해당 매개변수는 중첩된 CR로 아래로 작동합니다.

매개변수를 제거할 때 Ansible Automation Platform CR 중첩된 CR(예: Automation Controller CR)에서 둘 다 제거해야 합니다.

# Example of defining custom resource requirements for all components
# This can be useful for clusters with a ResourceQuote in the AAP namespaceapiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: aap
spec:

  # Platform
  api:
    replicas: 1
    resource_requirements:
      requests:
        cpu: 100m
        memory: 256Mi
      limits:
        cpu: 500m
        memory: 1000Mi
  redis:
    replicas: 1
    resource_requirements:
      requests:
        cpu: 100m
        memory: 256Mi
      limits:
        cpu: 500m
        memory: 500Mi
  database:
    resource_requirements:
      requests:
        cpu: 100m
        memory: 256Mi
      limits:
        cpu: 500m
        memory: 800Mi

  # Components
  controller:
    disabled: false
    uwsgi_processes: 2
    task_resource_requirements:
      requests:
        cpu: 100m
        memory: 150Mi
      limits:
        cpu: 1000m
        memory: 1200Mi
    web_resource_requirements:
      requests:
        cpu: 100m
        memory: 200Mi
      limits:
        cpu: 200m
        memory: 1600Mi
    ee_resource_requirements:
      requests:
        cpu: 100m
        memory: 64Mi
      limits:
        cpu: 1000m
        memory: 500Mi
    redis_resource_requirements:
      requests:
        cpu: 50m
        memory: 64Mi
      limits:
        cpu: 100m
        memory: 200Mi
    rsyslog_resource_requirements:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 500m
        memory: 250Mi
    init_container_resource_requirements:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 500m
        memory: 200Mi
  eda:
    disabled: false
    api:
      replicas: 1
      resource_requirements:
        requests:
          cpu: 50m
          memory: 350Mi
        limits:
          cpu: 500m
          memory: 400Mi
    ui:
      replicas: 1
      resource_requirements:
        requests:
          cpu: 25m
          memory: 64Mi
        limits:
          cpu: 500m
          memory: 150Mi
    scheduler:
      replicas: 1
      resource_requirements:
        requests:
          cpu: 50m
          memory: 200Mi
        limits:
          cpu: 500m
          memory: 250Mi
    worker:
      replicas: 2
      resource_requirements:
        requests:
          cpu: 25m
          memory: 200Mi
        limits:
          cpu: 250m
          memory: 250Mi
    default_worker:
      replicas: 1
      resource_requirements:
        requests:
          cpu: 25m
          memory: 200Mi
        limits:
          cpu: 500m
          memory: 400Mi
    activation_worker:
      replicas: 1
      resource_requirements:
        requests:
          cpu: 25m
          memory: 150Mi
        limits:
          cpu: 500m
          memory: 400Mi
    event_stream:
      replicas: 1
      resource_requirements:
        requests:
          cpu: 25m
          memory: 150Mi
        limits:
          cpu: 100m
          memory: 300Mi
  hub:
    disabled: false
    ## uncomment if using file storage for Content pod
    storage_type: file
    file_storage_storage_class: nfs-local-rwx  # replace with the rwx storage class for your cluster
    file_storage_size: 50Gi

    ## 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

    api:
      replicas: 1
      resource_requirements:
        requests:
          cpu: 150m
          memory: 256Mi
        limits:
          cpu: 800m
          memory: 500Mi
    content:
      replicas: 1
      resource_requirements:
        requests:
          cpu: 150m
          memory: 256Mi
        limits:
          cpu: 800m
          memory: 1200Mi
    worker:
      replicas: 1
      resource_requirements:
        requests:
          cpu: 150m
          memory: 256Mi
        limits:
          cpu: 800m
          memory: 400Mi
    web:
      replicas: 1
      resource_requirements:
        requests:
          cpu: 100m
          memory: 256Mi
        limits:
          cpu: 500m
          memory: 300Mi
    redis:
      replicas: 1
      resource_requirements:
        requests:
          cpu: 100m
          memory: 250Mi
        limits:
          cpu: 300m
          memory: 400Mi


  # lightspeed:
  #   disabled: true

# End state:
# * Controller deployed and named: myaap-controller
# * EDA deployed and named: myaap-eda
# * Hub deployed and named: myaap-hub
Copy to Clipboard Toggle word wrap

Ansible Automation Platform Operator를 설치하고 Ansible Automation Platform 구성 요소를 설정한 후 원하는 출력에 맞게 구성할 수 있습니다.

5.1. Red Hat OpenShift Container Platform 웹 콘솔에서 플랫폼 게이트웨이 구성

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

외부 데이터베이스를 사용하여 Ansible Automation Platform을 배포하는 두 가지 시나리오가 있습니다.

Expand

시나리오

작업 필요

새로운 설치

플랫폼에 사용할 단일 외부 데이터베이스 인스턴스를 지정해야 합니다.

  • 플랫폼 게이트웨이
  • 자동화 컨트롤러
  • 자동화 허브
  • 이벤트 기반 Ansible
  • Red Hat Ansible Lightspeed(활성화된 경우)

14.1의 aap-configuring-db-all-default-components.yml 예제를 참조하십시오. 이에 대한 자세한 내용은 사용자 정의 리소스 섹션입니다.

Red Hat Ansible Lightspeed를 사용하는 경우 aap-configuring-external-db-with-lightspeed-enabled.yml 예제를 사용하십시오.

2.4의 기존 외부 데이터베이스

기존 외부 데이터베이스는 업그레이드 후에도 동일하게 유지되지만 Ansible Automation Platform 사용자 정의 리소스에서 external-postgres-configuration-gateway (spec.database.database_secret)를 지정해야 합니다.

외부 데이터베이스를 사용하여 Ansible Automation Platform을 배포하려면 먼저 데이터베이스에 연결하기 위한 인증 정보를 사용하여 Kubernetes 시크릿을 생성해야 합니다.

기본적으로 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 데이터베이스여야 합니다. 외부 postgres 인스턴스 자격 증명 및 연결 정보는 시크릿에 저장해야 하며, 그런 다음 플랫폼 게이트웨이 사양에 설정됩니다.

참고

Ansible Automation Platform 2.6은 관리되는 데이터베이스에 대해 PostgreSQL 15를 지원하며, 외부 데이터베이스의 경우 PostgreSQL 15, 16 및 17을 추가로 지원합니다.

버전 16 또는 17인 외부 관리 데이터베이스를 사용하도록 선택하는 경우 외부 백업 및 복원 프로세스도 사용해야 합니다.

프로세스

  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
    
      type: "unmanaged"
    type: Opaque
    Copy to Clipboard Toggle word wrap
    1
    시크릿을 생성할 네임스페이스입니다. 배포하려는 네임스페이스와 동일해야 합니다.
    2
    데이터베이스 노드의 확인 가능한 호스트 이름입니다.
    3
    외부 포트의 기본값은 5432 입니다.
    4
    변수 암호 의 값에는 배포, 백업 또는 복원 중에 문제가 발생하지 않도록 작은따옴표 또는 큰따옴표(', ") 또는 백슬래시(\)가 없어야 합니다.
  2. oc create 명령을 사용하여 external-postgres-configuration-secret.yml 을 클러스터에 적용합니다.

    $ oc create -f external-postgres-configuration-secret.yml
    Copy to Clipboard Toggle word wrap
    참고

    다음 예제는 플랫폼 게이트웨이 배포를 위한 예입니다. 모든 구성 요소에 대한 외부 데이터베이스를 구성하려면 14.1의 aap-configuring-db-all-default-components.yml 예제를 사용합니다. 사용자 정의 리소스 섹션.

  3. AnsibleAutomationPlatform 사용자 정의 리소스 오브젝트를 생성할 때 아래 예제와 같이 사양에 보안을 지정합니다.

    apiVersion: aap.ansible.com/v1alpha1
    kind: AnsibleAutomationPlatform
    metadata:
      name: example-aap
      Namespace: aap
    spec:
      database:
         database_secret: automation-platform-postgres-configuration
    Copy to Clipboard Toggle word wrap

Ansible Automation Platform Operator를 업그레이드할 때 다음과 같은 오류가 발생할 수 있습니다.

NotImplementedError: can't parse timestamptz with DateStyle 'Redwood, SHOW_TIME': '18-MAY-23 20:33:55.765755 +00:00'
Copy to Clipboard Toggle word wrap

예기치 않은 DateStyle 세트가 있는 외부 데이터베이스가 있는 경우 이러한 오류가 발생합니다. 이 문제를 해결하려면 다음 단계를 참조할 수 있습니다.

프로세스

  1. 데이터베이스 서버에서 /var/lib/pgsql/data/postgres.conf 파일을 편집합니다.

    # vi /var/lib/pgsql/data/postgres.conf
    Copy to Clipboard Toggle word wrap
  2. 행을 찾아서 주석 처리하십시오.

    #datestyle = 'Redwood, SHOW_TIME'
    Copy to Clipboard Toggle word wrap
  3. 새로 추가된 행 바로 아래에 다음 설정을 추가합니다.

    datestyle = 'iso, mdy'
    Copy to Clipboard Toggle word wrap
  4. postgres.conf 파일을 저장하고 닫습니다.
  5. 데이터베이스 구성을 다시 로드합니다.

    # systemctl reload postgresql
    Copy to Clipboard Toggle word wrap
    참고

    이 명령을 실행하면 데이터베이스 작업이 중단되지 않습니다.

SAML에 대한 HTTPS 리디렉션을 사용하면 다시 인증할 필요 없이 한 번만 로그인하여 모든 플랫폼 게이트웨이에 액세스할 수 있습니다.

사전 요구 사항

  • Ansible Automation Platform Operator의 게이트웨이에 SAML을 성공적으로 구성했습니다. 이에 대한 도움말은 SAML 인증 구성 을 참조하십시오.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operator 설치된 Operator로 이동합니다.
  3. Ansible Automation Platform Operator 배포를 선택합니다.
  4. 모든 인스턴스를 선택하고 AnsibleAutomationPlatform 인스턴스로 이동합니다.
  5. Cryostat 아이콘을 클릭한 다음 AnsibleAutomationPlatform 편집을 선택합니다.
  6. YAML 보기에서 spec: 섹션에 다음 YAML 코드를 붙여넣습니다.

    spec:
      extra_settings:
        - setting: REDIRECT_IS_HTTPS
          value: '"True"'
    Copy to Clipboard Toggle word wrap
  7. 저장을 클릭합니다.

검증

REDIRECT_IS_HTTPS 설정을 추가한 후 Pod가 자동으로 재배포될 때까지 기다립니다. 다음을 실행하여 이 설정으로 Pod로 만들 수 있는지 확인할 수 있습니다.

oc exec -it <gateway-pod-name> -- grep REDIRECT /etc/ansible-automation-platform/gateway/settings.py
Copy to Clipboard Toggle word wrap

5.1.4. 플랫폼 게이트웨이 Operator 수신에 대한 CSRF 설정 구성

Red Hat Ansible Automation Platform Operator는 Openshift 경로를 생성하고 CSRF(Cross-site request forgery) 설정을 자동으로 구성합니다. 외부 수신을 사용하는 경우 사이트 간 요청을 허용하도록 수신에서 CSRF를 구성해야 합니다. 고급 구성에서 플랫폼 게이트웨이 운영자 수신을 구성할 수 있습니다.

프로세스

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

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

    spec:
      extra_settings:
        - setting: CSRF_TRUSTED_ORIGINS
          value:
            - https://my-aap-domain.com
    Copy to Clipboard Toggle word wrap
  10. 플랫폼 게이트웨이를 구성한 후 양식 보기 하단에서 만들기 를 클릭합니다(기존 인스턴스를 편집하는 경우 저장 ).

검증

Red Hat OpenShift Container Platform은 Pod를 생성합니다. 이 작업은 몇 분 정도 걸릴 수 있습니다. WorkloadsPod 로 이동하여 새로 생성된 인스턴스를 찾아 진행 상황을 볼 수 있습니다. 플랫폼 게이트웨이에서 Red Hat Ansible Automation Platform Operator 설치에서 제공하는 다음 operator Pod가 실행 중인지 확인합니다.

Expand
Operator 관리자 컨트롤러 Pod자동화 컨트롤러 PodAutomation Hub Pod이벤트 기반 Ansible (EDA) Pod플랫폼 게이트웨이 Pod

4개의 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가 추가된 것을 확인할 수 있습니다.

  • 자동화 컨트롤러 웹
  • 자동화 컨트롤러 작업
  • 메시 인그레스
  • 자동화 컨트롤러 postgres

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

  • Automation Hub 웹
  • 자동화 허브 작업
  • Automation Hub API
  • Automation Hub 작업자

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

  • EDA API
  • EDA 활성화
  • EDA 작업자
  • EDA 스트림
  • EDA Scheduler

플랫폼 게이트웨이를 배포한 후 다음 Pod의 추가를 확인할 수 있습니다.

  • 플랫폼 게이트웨이
  • 플랫폼 게이트웨이 redis
참고

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

5.1.5. Ansible Automation Platform에 대한 사용자 정의 PostgreSQL 설정 구성

postgres_extra_settings 변수를 사용하면 데이터베이스 Pod 내에서 PostgreSQL 구성 파일 (/var/lib/pgsql/data/postgresql.conf) 에 직접 사용자 지정 name: value 쌍 목록을 전달할 수 있습니다.

사전 요구 사항

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

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operator → 설치된 Operator로 이동합니다.
  3. Ansible Automation Platform Operator 배포를 선택합니다.
  4. 모든 인스턴스를 선택하고 Ansible Automation Platform 인스턴스로 이동합니다.
  5. Cryostat 아이콘을 클릭한 다음 Ansible Automation Platform 편집을 선택합니다.
  6. YAML 보기에서 spec: 섹션을 찾습니다.
  7. spec:database 섹션 및 필수 설정을 추가합니다. 다음 예제에서는 SSL 암호 및 최대 연결을 구성합니다.

    spec:
      database:
        postgres_extra_settings:
          - name: max_connections
            value: '1000'
    Copy to Clipboard Toggle word wrap
  8. 저장을 클릭합니다.

검증

PostgreSQL 포드 로그를 검사하여 새 설정을 확인합니다.

또는 다음 명령을 실행하여 설정을 확인할 수 있습니다. & lt;aap postgres pod& gt;를 PostgreSQL Pod의 이름으로 바꿉니다.

+

$ oc exec -it <aap postgres pod> -- psql -d gateway -c "SHOW max_connections;"
Copy to Clipboard Toggle word wrap

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

Ansible Automation Platform 배포를 관리하고 이러한 자주 묻는 질문의 일반적인 문제를 해결합니다. 구성 요소의 리소스 관리, 로깅 및 오류 복구에 대해 알아봅니다.

Ansible Automation Platform 배포를 삭제하면 자동화 컨트롤러에 계속 액세스할 수 있습니까?
아니요, 자동화 컨트롤러, 자동화 허브 및 이벤트 기반 Ansible은 배포 내에 중첩되어 있으며도 삭제됩니다.
Ansible Automation Platform CR(사용자 정의 리소스) 계층에서 매개변수를 추가하거나 제거할 때 매개변수를 관리하려면 어떻게 해야 합니까?
매개변수를 추가할 때 Ansible Automation Platform CR(사용자 정의 리소스)에만 추가할 수 있으며 해당 매개변수는 중첩된 CR로 아래로 작동합니다.

매개변수를 제거할 때 Ansible Automation Platform CR 중첩된 CR(예: Automation Controller CR)에서 둘 다 제거해야 합니다.

배포에 문제가 발생했지만 무엇을 알 수 있는지, 어떻게 확인할 수 있습니까?
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
SAML을 구성했지만 이 오류로 인해 인증이 실패합니다. "소셜 인증 로그인을 완료할 수 없습니다" 어떻게 해야 합니까?
REDIRECT_IS_HTTPS 추가 설정을 포함하도록 Ansible Automation Platform 인스턴스를 업데이트해야 합니다. 이에 대한 도움말은 OpenShift Container Platform의 플랫폼 게이트웨이의 SSO(Single Sign-On) 활성화를 참조하십시오.

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

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

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

참고

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

5.2.1. 사전 요구 사항

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

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

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

프로세스

  1. bundle-ca.crt 파일의 Ansible Automation Platform 네임스페이스에 시크릿을 생성합니다(파일 이름은 bundle-ca.crt여야 함).

    $ oc create secret -n aap-namespace generic bundle-ca-secret --from-file=bundle-ca.crt
    Copy to Clipboard Toggle word wrap
  2. bundle_cacert_secret 을 Ansible Automation Platform 고객 리소스에 추가합니다.

    ...
    spec:
      bundle_cacert_secret: bundle-ca-secret
    ...
    Copy to Clipboard Toggle word wrap

    검증

    다음을 실행하여 예상되는 인증서를 확인할 수 있습니다.

    oc exec -it deployment.apps/aap-gateway - openssl x509 -in /etc/pki/tls/certs/bundle-ca.crt -noout -text
    Copy to Clipboard Toggle word wrap
5.2.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를 선택합니다.

    참고

    경로를 구성한 후 해당 자동화 컨트롤러 인스턴스의 YAML에 route_host: 를 추가하여 호스트 이름을 사용자 지정할 수 있습니다.

5.2.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 데이터베이스여야 합니다. 외부 postgres 인스턴스 자격 증명 및 연결 정보는 시크릿에 저장해야 하며, 그런 다음 자동화 컨트롤러 사양에 설정됩니다.

참고

Ansible Automation Platform 2.6은 관리되는 데이터베이스에 대해 PostgreSQL 15를 지원하며, 외부 데이터베이스의 경우 PostgreSQL 15, 16 및 17을 추가로 지원합니다.

버전 16 또는 17인 외부 관리 데이터베이스를 사용하도록 선택하는 경우 외부 백업 및 복원 프로세스도 사용해야 합니다.

프로세스

  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
    Copy to Clipboard Toggle word wrap
    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
    Copy to Clipboard Toggle word wrap
  3. AutomationController 사용자 정의 리소스 오브젝트를 생성할 때 아래 예에 따라 사양에 보안을 지정합니다.

    apiVersion: automationcontroller.ansible.com/v1beta1
    kind: AutomationController
    metadata:
      name: controller-dev
    spec:
      postgres_configuration_secret: external-postgres-configuration
    Copy to Clipboard Toggle word wrap

5.2.3. PVC 검색 및 삭제

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

프로세스

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

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

    oc delete pvc -n <namespace> <pvc-name>
    Copy to Clipboard Toggle word wrap

5.3. 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 찾기 및 삭제 를 참조하십시오.

5.3.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 서버가 잠재적인 단일 장애 지점으로 도입됩니다.

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

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

프로세스

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

    1. 자세한 내용은 프로비저닝 을 참조하여 액세스 모드를 업데이트합니다.
  4. PVC(영구 볼륨 클레임)를 생성하려면 이 섹션의 추가 단계를 완료합니다.
5.3.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
    Copy to Clipboard Toggle word wrap
  2. 자동화 허브 CR(사용자 정의 리소스) 사양에 보안을 추가합니다.

    spec:
      object_storage_s3_secret: test-s3
    Copy to Clipboard Toggle word wrap
  3. 기존 인스턴스에 이 보안을 적용하는 경우 API Pod를 다시 시작하여 변경 사항을 적용합니다. <Hub-name >은 허브 인스턴스의 이름입니다.

    $ oc -n $HUB_NAMESPACE delete pod -l app.kubernetes.io/name=<hub-name>-api
    Copy to Clipboard Toggle word wrap
5.3.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
    Copy to Clipboard Toggle word wrap
  2. 자동화 허브 CR(사용자 정의 리소스) 사양에 보안을 추가합니다.

    spec:
      object_storage_azure_secret: test-azure
    Copy to Clipboard Toggle word wrap
  3. 기존 인스턴스에 이 보안을 적용하는 경우 API Pod를 다시 시작하여 변경 사항을 적용합니다. <Hub-name >은 허브 인스턴스의 이름입니다.

    $ oc -n $HUB_NAMESPACE delete pod -l app.kubernetes.io/name=<hub-name>-api
    Copy to Clipboard Toggle word wrap
5.3.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 인증 정보 시크릿 에서 드롭다운 메뉴를 클릭하고 목록에서 시크릿을 선택합니다.

    참고

    경로를 구성한 후 해당 자동화 허브 인스턴스의 YAML에 route_host: 를 추가하여 호스트 이름을 사용자 지정할 수 있습니다.

5.3.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 오류가 있는지 확인하여 이 문제를 추가로 진단할 수 있습니다.

5.3.2. 자동화 허브 경로 찾기

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

프로세스

  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 데이터베이스여야 합니다. 외부 postgres 인스턴스 자격 증명 및 연결 정보는 시크릿에 저장해야 하며 자동화 허브 사양에 설정됩니다.

참고

Ansible Automation Platform 2.6은 관리되는 데이터베이스에 대해 PostgreSQL 15를 지원하며, 외부 데이터베이스의 경우 PostgreSQL 15, 16 및 17을 추가로 지원합니다.

버전 16 또는 17인 외부 관리 데이터베이스를 사용하도록 선택하는 경우 외부 백업 및 복원 프로세스도 사용해야 합니다.

프로세스

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

    apiVersion: automationhub.ansible.com/v1beta1
    kind: AutomationHub
    metadata:
      name: hub-dev
    spec:
      postgres_configuration_secret: external-postgres-configuration
    Copy to Clipboard Toggle word wrap
5.3.3.1. 자동화 허브 PostgreSQL 데이터베이스의 hstore 확장 활성화

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

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

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

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

프로세스

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

    $ psql -d <automation hub database> -c "SELECT * FROM pg_available_extensions WHERE name='hstore'"
    Copy to Clipboard Toggle word wrap
  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)
    Copy to Clipboard Toggle word wrap

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

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

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

    dnf install postgresql-contrib
    Copy to Clipboard Toggle word wrap
  4. 다음 명령을 사용하여 hstore PostgreSQL 확장을 자동화 허브 데이터베이스에 로드합니다.

    $ psql -d <automation hub database> -c "CREATE EXTENSION hstore;"
    Copy to Clipboard Toggle word wrap

    다음 출력에서 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)
    Copy to Clipboard Toggle word wrap

5.3.4. PVC 검색 및 삭제

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

프로세스

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

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

    oc delete pvc -n <namespace> <pvc-name>
    Copy to Clipboard Toggle word wrap

5.3.5. 추가 구성

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

spec:
  pulp_settings:
    ansible_collect_download_count: true
Copy to Clipboard Toggle word wrap

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

5.3.6. 자동화 컨트롤러 이미지 구성에 허용된 레지스트리 추가

자동화 허브에 컨테이너 이미지를 배포하려면 먼저 자동화 컨트롤러 이미지 구성의 allowedRegistries 에 레지스트리를 추가해야 합니다. 이렇게 하려면 다음 코드를 복사하여 자동화 컨트롤러 이미지 YAML에 붙여넣을 수 있습니다.

프로세스

  1. Red Hat OpenShift Container Platform 에 로그인합니다.
  2. 검색으로 이동합니다.
  3. 리소스 드롭다운 목록을 선택하고 "Image"를 입력합니다.
  4. 이미지(config,openshift.io/v1) 를 선택합니다.
  5. 이름 제목 아래에 있는 클러스터를 클릭합니다.
  6. YAML 탭을 선택합니다.
  7. spec 값 아래에 다음 내용을 붙여넣습니다.

    spec:
      registrySources:
        allowedRegistries:
        - quay.io
        - registry.redhat.io
        - image-registry.openshift-image-registry.svc:5000
        - <OCP route for your automation hub>
    Copy to Clipboard Toggle word wrap
  8. 저장을 클릭합니다.

5.3.7. Ansible Automation Platform Hub Operator에 대한 콘텐츠 서명 구성

조직의 자동화 관리자는 조직 내의 다양한 그룹의 Ansible 콘텐츠 컬렉션에 서명하고 게시하도록 Ansible Automation Platform Hub Operator를 구성할 수 있습니다.

추가 보안을 위해 자동화 작성자는 Ansible-Galaxy CLI를 구성하여 자동화 허브에 업로드된 후 이러한 컬렉션이 변경되지 않았는지 확인할 수 있습니다.

Ansible 인증 콘텐츠 컬렉션에 성공적으로 서명하고 게시하려면 서명을 위해 프라이빗 자동화 허브를 구성해야 합니다.

사전 요구 사항

  • GPG 키 쌍입니다. 없는 경우 gpg --full-generate-key 명령을 사용하여 생성할 수 있습니다.
  • 공개-개인 키 쌍은 Ansible Automation Platform Hub Operator에서 콘텐츠 서명을 구성하기 위해 적절한 액세스 권한을 갖습니다.

프로세스

  1. 서명 스크립트를 위한 ConfigMap을 생성합니다. 생성한 ConfigMap에는 컬렉션 및 컨테이너 이미지에 서명 서비스에서 사용하는 스크립트가 포함되어 있습니다.

    참고

    이 스크립트는 서명 서비스의 일부로 사용되며 PULP_SIGNING_KEY_FINGERPRINT 환경 변수를 통해 지정된 키를 사용하여 해당 파일의 ascii-armored detached gpg 서명을 생성해야 합니다.

    스크립트는 다음 형식을 사용하여 JSON 구조를 출력합니다.

    {"file": "filename", "signature": "filename.asc"}
    Copy to Clipboard Toggle word wrap

    모든 파일 이름은 현재 작업 디렉터리 내부의 상대 경로입니다. 분리된 서명에는 파일 이름이 동일해야 합니다.

    예: 다음 스크립트는 콘텐츠에 대한 서명을 생성합니다.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: signing-scripts
    data:
      collection_sign.sh: |-
          #!/usr/bin/env bash
    
          FILE_PATH=$1
          SIGNATURE_PATH=$1.asc
    
          ADMIN_ID="$PULP_SIGNING_KEY_FINGERPRINT"
          PASSWORD="password"
    
          # Create a detached signature
          gpg --quiet --batch --pinentry-mode loopback --yes --passphrase \
            $PASSWORD --homedir /var/lib/pulp/.gnupg --detach-sign --default-key $ADMIN_ID \
            --armor --output $SIGNATURE_PATH $FILE_PATH
    
          # Check the exit status
          STATUS=$?
          if [ $STATUS -eq 0 ]; then
            echo {\"file\": \"$FILE_PATH\", \"signature\": \"$SIGNATURE_PATH\"}
          else
            exit $STATUS
          fi
      container_sign.sh: |-
        #!/usr/bin/env bash
    
        # galaxy_container SigningService will pass the next 4 variables to the script.
        MANIFEST_PATH=$1
        FINGERPRINT="$PULP_SIGNING_KEY_FINGERPRINT"
        IMAGE_REFERENCE="$REFERENCE"
        SIGNATURE_PATH="$SIG_PATH"
    
        # Create container signature using skopeo
        skopeo standalone-sign \
          $MANIFEST_PATH \
          $IMAGE_REFERENCE \
          $FINGERPRINT \
          --output $SIGNATURE_PATH
    
        # Optionally pass the passphrase to the key if password protected.
        # --passphrase-file /path/to/key_password.txt
    
        # Check the exit status
        STATUS=$?
        if [ $STATUS -eq 0 ]; then
          echo {\"signature_path\": \"$SIGNATURE_PATH\"}
        else
          exit $STATUS
        fi
    Copy to Clipboard Toggle word wrap
  2. GnuPG 개인 키에 대한 시크릿을 생성합니다. 이 시크릿은 서명에 사용하는 GnuPG 개인 키를 안전하게 저장합니다.

    gpg --export --armor <your-gpg-key-id> > signing_service.gpg
    
    oc create secret generic signing-galaxy --from-file=signing_service.gpg
    Copy to Clipboard Toggle word wrap

    시크릿에는 signing_service.gpg 라는 키가 있어야 합니다.

  3. AnsibleAutomationPlatform CR을 구성합니다.

    apiVersion: aap.ansible.com/v1alpha1
    kind: AnsibleAutomationPlatform
    metadata:
      name: aap-hub-signing-sample
    spec:
      hub:
        signing_secret: "signing-galaxy"
        signing_scripts_configmap: "signing-scripts"
    Copy to Clipboard Toggle word wrap

5.4. Red Hat Ansible Automation Platform Operator에 Redis 배포

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

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 값을 "cluster"로 변경합니다.
    3. 다시 로드 를 클릭한 다음 저장을 클릭합니다.
  6. 고급 구성 을 확장하려면 클릭합니다.
  7. Redis Mode 목록에 대해 클러스터를 선택합니다.
  8. 필요에 따라 나머지 인스턴스를 구성한 다음 만들기 를 클릭합니다.

검증

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

참고

이 경우 기본 redis 캐시 PVC 볼륨 크기 자동화 허브를 수정하여 자동화 허브 기본 redis 캐시 PVC PVC 볼륨 크기를 수정 할 수 있습니다.

6장. OpenShift Container Platform에 Ansible Lightspeed 지능형 도우미 배포

시스템 관리자는 OpenShift Container Platform의 Ansible Automation Platform 2.6에 Ansible Lightspeed 지능형 도우미를 배포할 수 있습니다.

6.1. 개요

OpenShift Container Platform의 Ansible Automation Platform 2.6에서 Ansible Lightspeed 지능형 도우미를 설치하고 사용할 수 있습니다. Ansible Lightspeed 지능형 도우미는 Ansible Automation Platform에 내장된 직관적인 채팅 인터페이스이며, AI(유효성 인공 지능)를 사용하여 Ansible Automation Platform에 대한 질문에 답변합니다.

Ansible Lightspeed 지능형 도우미는 영어의 자연어 프롬프트로 사용자와 상호 작용하며 LLM(Large Language Models)을 사용하여 빠르고 정확하며 개인화된 응답을 생성합니다. 이러한 응답을 통해 Ansible 사용자는 보다 효율적으로 작업할 수 있으므로 생산성과 작업의 전반적인 품질을 향상시킬 수 있습니다.

Ansible Lightspeed 지능형 도우미에는 다음과 같은 구성이 필요합니다.

  • Red Hat OpenShift Container Platform에 Ansible Automation Platform 2.6 설치
  • Red Hat Enterprise Linux AI, Red Hat OpenShift AI 또는 Red Hat AI Inference Server에서 호스팅되는 Cryostat 서비스를 배포합니다. 사용할 수 있는 Cryostat 공급자를 알아보려면, Cryostat 공급자.
중요

Red Hat은 Ansible Lightspeed 지능형 도우미와의 상호 작용에서 원격 분석 데이터를 수집하지 않습니다.

6.1.1. MCP 서버와 통합

Ansible Lightspeed Intelligent Assistant를 모델 컨텍스트 프로토콜(MCP) 서버와의 통합은 기술 프리뷰 릴리스로 사용할 수 있습니다. 이 통합을 통해 관련, 동적으로 가져온 데이터 결과를 쿼리에 전달하여 사용자 환경이 향상됩니다.

MCP는 애플리케이션이 context를 제공하는 방법을 표준화하는 오픈 프로토콜입니다. 이 프로토콜을 사용하여 MCP 서버는 external 리소스에서 실시간 정보를 요청 및 수신하여 context를 늘리기 위한 표준화된 방법을 제공합니다. MCP 서버와의 통합을 통해 Ansible Lightspeed 지능형 도우미는 관련, 동적으로 소싱된 데이터 결과를 쿼리에 전달하여 향상된 사용자 환경을 제공할 수 있습니다. chatbot 구성 시크릿에서 MCP 서버를 구성할 수 있습니다. 자세한 내용은 chatbot 구성 시크릿 생성 을 참조하십시오.

참고

기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

6.1.2. Ansible Automation Platform 2.6 요구 사항

  • OpenShift Container Platform 환경에 Ansible Automation Platform 2.6을 설치했습니다.
  • Ansible Automation Platform에 대한 관리자 권한이 있습니다.
  • Operator Lifecycle Management가 설치된 OpenShift 클러스터를 프로비저닝했습니다.

6.1.3. LLM(Large Language Model) 공급자 요구 사항

Ansible Lightspeed 지능형 도우미를 배포하기 전에 사용할 Cryostat 공급자를 구성해야 합니다.

Cryostat는 인간과 같은 언어를 해석하고 생성할 수 있는 머신 러닝 모델의 유형입니다. Cryostat를 Ansible Lightspeed 지능형 도우미와 함께 사용하면 Cryostat에서 질문을 정확하게 해석하고 대화 방식으로 유용한 답변을 제공할 수 있습니다.

Ansible Lightspeed 지능형 도우미는 다음과 같은 Red Hat Cryostat 공급자를 신뢰할 수 있습니다.

  • Red Hat Enterprise Linux AI

    Red Hat Enterprise Linux AI를 Cryostat 공급자로 구성할 수 있습니다. Red Hat Enterprise Linux는 Ansible Lightspeed 배포와 다른 환경에 있으므로 모델 배포에서는 보안 연결을 사용하여 액세스를 허용해야 합니다. 자세한 내용은 선택 사항: 보안 끝점에서 모델에 대한 액세스 허용을 참조하십시오.

    Ansible Lightspeed 지능형 도우미는 vLLM 서버를 지원합니다. Red Hat Enterprise Linux AI를 사용하여 Cryostat를 자체 호스트하는 경우 vLLM 서버를 추론 엔진으로 사용할 수 있습니다.

  • Red Hat OpenShift AI

    vLLM(Virtual Large Language Model) 런타임을 사용하는 Red Hat OpenShift AI 단일 모델 제공 플랫폼에 Cryostat를 배포해야 합니다. 모델 배포가 Ansible Lightspeed 배포와 다른 OpenShift 환경에 있는 경우 클러스터 외부에 모델 배포를 노출하는 경로를 포함합니다. 자세한 내용은 단일 모델 제공 플랫폼 정보를 참조하십시오.

    Ansible Lightspeed 지능형 도우미는 vLLM 서버를 지원합니다. Red Hat OpenShift AI를 사용하여 Cryostat를 자체 호스팅할 때 vLLM 서버를 추론 엔진으로 사용할 수 있습니다.

    참고

    Red Hat Enterprise Linux AI 또는 Red Hat OpenShift AI를 사용한 구성의 경우 SaaS Cryostat 공급자를 사용하는 대신 자체 Cryostat 공급자를 호스팅해야 합니다.

  • Red Hat AI Inference Server

    Red Hat AI Inference Server를 유추 런타임으로 사용하여 Cryostat를 배포할 수 있습니다. Red Hat AI Inference Server는 효율적인 모델 서비스를 위해 vLLM 런타임을 지원하며 Ansible Lightspeed 지능형 도우미와 함께 작동하도록 구성할 수 있습니다. 자세한 내용은 Red Hat AI Inference Server 설명서를 참조하십시오.

    Red Hat AI Inference Server 배포가 Ansible Lightspeed 배포와 다른 환경에 있는 경우 모델 배포에서 보안 연결을 사용하여 액세스 권한을 허용하고 적절한 네트워크 라우팅을 구성해야 합니다.

    Ansible Lightspeed 지능형 도우미는 Red Hat AI Inference Server를 추론 엔진으로 사용하는 Cryostat를 자체 호스팅할 때 vLLM 서버를 지원합니다.

6.1.4. Ansible Lightspeed 지능형 도우미 구성 및 사용 프로세스

다음 작업을 수행하여 OpenShift Container Platform 환경의 Ansible Automation Platform 인스턴스에서 Ansible Lightspeed 지능형 도우미를 설정하고 사용합니다.

Expand
Task설명

OpenShift Container Platform에 Ansible Lightspeed 지능형 도우미 배포

조직의 모든 Ansible 사용자를 위해 Ansible Lightspeed 지능형 도우미를 배포하려는 Ansible Automation Platform 관리자입니다.

다음 작업을 수행합니다.

Ansible Lightspeed 지능형 도우미 액세스 및 사용

지능형 도우미를 사용하여 Ansible Automation Platform에 대한 질문에 답변하려는 모든 Ansible 사용자입니다. 자세한 내용은 Ansible Lightspeed 지능형 도우미 사용을 참조하십시오.

6.2. Ansible Lightspeed 지능형 도우미 배포

이 섹션에서는 OpenShift Container Platform에 Ansible Lightspeed 지능형 도우미 배포와 관련된 절차에 대해 설명합니다.

6.2.1. chatbot 구성 시크릿 생성

지능형 도우미를 Ansible Automation Platform Operator에 연결할 수 있도록 Ansible Lightspeed 지능형 도우미의 구성 시크릿을 생성합니다.

프로세스

  1. Red Hat OpenShift Container Platform에 관리자로 로그인합니다.
  2. WorkloadsSecrets 로 이동합니다.
  3. 프로젝트 목록에서 Ansible Automation Platform Operator를 설치할 때 생성한 네임스페이스를 선택합니다.
  4. 키/값 시크릿+생성 을 클릭합니다.
  5. 시크릿 이름 필드에 시크릿의 고유 이름을 입력합니다. 예를 들어, chatbot-configuration-secret.
  6. 다음 키와 관련 값을 개별적으로 추가합니다.

    Expand
    현재의

    모든 Cryostat 설정에 대한 설정

    chatbot_model

    Cryostat 설정에 구성된 Cryostat 모델 이름을 입력합니다.

    chatbot_url

    Cryostat 설정에 유추 API 기본 URL을 입력합니다. 예: https://your_inference_api/v1.

    chatbot_token

    API 토큰 또는 API 키를 입력합니다. 이 토큰은 유추 API가 호출되면 권한 부여 헤더와 함께 전송됩니다.

    chatbot_llm_provider_type

    선택 사항

    다음 값 중 하나를 사용하여 Cryostat 설정의 공급자 유형을 입력합니다.

    • Red Hat Enterprise Linux AI: rhelai_vllm
    • Red Hat OpenShift AI: rhoai_vllm

    MCP 서버 구성에 대한 추가 설정

    • aap_gateway_url
    • aap_controller_url

    Ansible Lightspeed 지능형 도우미와 상호 작용하는 MCP(Model Context Protocol) 서버를 구성합니다.

    aap_gateway_urlaap_controller_url 값은 OpenShift 클러스터의 플랫폼 게이트웨이 및 자동화 컨트롤러 서비스에 액세스할 수 있는 내부 URL입니다. 예를 들어 Ansible Automation Platform 사용자 정의 리소스의 이름이 myaap 인 경우 이러한 URL은 다음과 같습니다.

    • aap_gateway_url: http://myaap
    • aap_controller_url: http://myaap-controller-service

    MCP 서버 구성의 경우:

    • 이러한 매개변수가 구성되지 않은 경우 런타임 시 기본 Cryostat 툴에 MCP 서버가 프로비저닝되거나 등록되지 않습니다.
    • aap_gateway_url 매개변수만 구성하는 경우 Ansible Lightspeed Service MCP 서버가 프로비저닝됩니다. 인증은 사용자의 인증된 컨텍스트와 연결된 JSON 웹 토큰(JWT) 토큰을 사용하려고 합니다.
    • aap_gateway_urlaap_controller_url 을 둘 다 구성하는 경우 Ansible Lightspeed Service MCP 서버와 Ansible Automation Platform Controller Service MCP 서버가 모두 구성됩니다. 인증은 사용자의 인증된 컨텍스트와 연결된 JWT 토큰을 사용하려고 합니다.
  7. 생성을 클릭합니다. chatbot 인증 보안이 성공적으로 생성되었습니다.

6.2.2. Ansible Automation Platform Operator의 YAML 파일 업데이트

chatbot 권한 부여 보안을 생성한 후 시크릿을 사용하도록 Ansible Automation Platform Operator의 YAML 파일을 업데이트해야 합니다.

프로세스

  1. Red Hat OpenShift Container Platform에 관리자로 로그인합니다.
  2. Operators(운영자) InstalledOperators 로 이동합니다.
  3. 설치된 Operator 목록에서 Ansible Automation Platform Operator를 선택합니다.
  4. Ansible Automation Platform 사용자 정의 리소스를 찾아 선택한 다음 필요한 앱을 클릭합니다.
  5. YAML 탭을 선택합니다.
  6. 텍스트를 스크롤하여 spec: 섹션을 찾고 spec: 섹션 아래에 다음 세부 정보를 추가합니다.

    spec:
      lightspeed:
        disabled: false
        chatbot_config_secret_name: <name of your chatbot configuration secret>
    Copy to Clipboard Toggle word wrap
  7. 저장을 클릭합니다. Ansible Lightspeed 지능형 도우미 서비스는 몇 분 정도 걸립니다.

검증

  1. 채팅 인터페이스 서비스가 성공적으로 실행 중인지 확인합니다.

    1. 워크로드포드 로 이동합니다.
    2. api 라는 용어를 필터링하고 다음 API가 Running 상태에 표시되는지 확인합니다.

      • myaap-lightspeed-api-<version number>
      • myaap-lightspeed-chatbot-api-<version number>
  2. aap_gateway_url 또는 aap_controller_url 매개변수를 지정한 경우 MCP 서버 구성을 확인합니다.

    • Lightspeed -chatbot-api Pod를 열고 Containers 섹션을 클릭합니다.

      • ansible-mcp-lightspeed 컨테이너가 표시되면 Ansible Lightspeed MCP 서버가 실행 중입니다.
      • ansible-mcp-controller 컨테이너가 표시되면 Ansible Automation Platform Controller Service MCP 서버가 실행 중입니다.
  3. 채팅 인터페이스가 Ansible Automation Platform에 표시되는지 확인합니다.

    1. Ansible Automation Platform에 액세스합니다.

      1. Operators(운영자) InstalledOperators 로 이동합니다.
      2. 설치된 Operator 목록에서 Ansible Automation Platform 을 클릭합니다.
      3. Ansible Automation Platform 사용자 정의 리소스를 찾아 선택한 다음 생성한 앱을 클릭합니다.
      4. 세부 정보 탭에서 다음 필드에 사용 가능한 정보를 기록합니다.

        • URL: Ansible Automation Platform 인스턴스의 URL입니다.
        • 게이트웨이 관리자 사용자: Ansible Automation Platform 인스턴스에 로그인할 사용자 이름입니다.
        • 게이트웨이 관리자 암호: Ansible Automation Platform 인스턴스에 로그인할 암호입니다.
      5. 이전에 기록한 URL, 사용자 이름 및 암호를 사용하여 Ansible Automation Platform에 로그인합니다.
    2. Ansible Lightspeed 지능형 도우미에 액세스합니다.

      1. 작업 표시줄의 오른쪽 상단에 표시되는 Ansible Lightspeed 지능형 도우미 아이콘 Ansible Lightspeed intelligent assistant icon 을 클릭합니다.
      2. 다음 이미지에 표시된 대로 채팅 인터페이스가 표시되는지 확인합니다.

        Ansible Lightspeed intelligent assistant .

6.3. Ansible Lightspeed 지능형 도우미 사용

Ansible Lightspeed 지능형 도우미를 배포한 후 조직 내의 모든 Ansible 사용자는 채팅 인터페이스에 액세스하고 사용하여 질문을 하고 Ansible Automation Platform에 대한 정보를 받을 수 있습니다.

Ansible Lightspeed 지능형 도우미 액세스

  1. Ansible Automation Platform에 로그인합니다.
  2. 작업 표시줄의 오른쪽 상단에 표시되는 Ansible Lightspeed 지능형 도우미 아이콘 Ansible Lightspeed intelligent assistant icon 을 클릭합니다.

    다음 이미지에 표시된 대로 Ansible Lightspeed 지능형 도우미 창이 시작 메시지와 함께 열립니다.

    Ansible Lightspeed intelligent assistant

Ansible Lightspeed 지능형 도우미 사용

다음 작업을 수행할 수 있습니다.

  • 프롬프트 필드에 질문을 하고 Ansible Automation Platform에 대한 답변을 받으십시오.
  • 채팅 세션에서 모든 대화의 대화 내역 보기
  • 사용자 프롬프트 또는 답변을 사용하여 채팅 기록 검색

    기존 채팅 세션을 닫거나 Ansible Automation Platform에서 로그아웃하면 채팅 기록이 삭제됩니다.

  • 채팅 기록에서 관련 항목을 클릭하여 이전 채팅 복원
  • Thumbs up 또는 Thumbs down 아이콘을 클릭하여 채팅 응답의 품질에 대한 피드백 제공
  • 복사 아이콘을 클릭하여 답변 복사 및 기록
  • 툴바 오른쪽 상단에서 Sun 아이콘 Sun icon 을 클릭하여 가상 도우미의 모드를 어둡거나 광 모드로 변경합니다.
  • 채팅 기록의 새 채팅 버튼을 사용하여 기존 채팅 의 컨텍스트를 지웁니다.
  • Ansible Automation Platform에서 작업하는 동안 채팅 인터페이스를 종료합니다.

7장. Red Hat Ansible Automation Platform Operator 배포 축소

idle_aap 변수를 사용하여 모든 Ansible Automation Platform 배포 및 StatefulSets를 축소할 수 있습니다. 이는 업그레이드, 마이그레이션 또는 재해 복구와 같은 시나리오에 유용합니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operator 설치된 Operator로 이동합니다.
  3. Ansible Automation Platform Operator 배포를 선택합니다.
  4. 모든 인스턴스를 선택하고 AnsibleAutomationPlatform 인스턴스로 이동합니다.
  5. Cryostat 아이콘을 클릭한 다음 AnsibleAutomationPlatform 편집을 선택합니다.
  6. YAML 보기에서 spec: 섹션에 다음 YAML 코드를 붙여넣습니다.

    idle_aap: true
    Copy to Clipboard Toggle word wrap
  7. 저장을 클릭합니다.

다음 단계

idle_aap 값을 true 로 설정하면 활성 배포가 모두 축소됩니다. 값을 false 로 설정하면 배포가 다시 확장됩니다.

Red Hat Ansible Automation Platform 배포를 Ansible Automation Platform Operator로 마이그레이션하면 Red Hat Ansible Automation Platform 배포에 대한 업그레이드 및 전체 라이프사이클 지원을 포함하여 Kubernetes 네이티브 Operator에서 제공하는 이점을 활용할 수 있습니다.

Ansible Automation Platform 마이그레이션 가이드를 사용하여 마이그레이션 에 도움이 될 수 있습니다.

참고

이벤트 기반 Ansible 버전 2.4에서 2.6으로의 업그레이드는 지원되지 않습니다. 이벤트 기반 Ansible 2.4 및 이벤트 기반 Ansible 2.6 간의 데이터베이스 마이그레이션은 호환되지 않습니다.

Ansible Automation Platform Operator는 OpenShift Container Platform 환경에서 새로운 Red Hat Ansible Automation Platform 인스턴스의 설치, 업그레이드 및 배포를 간소화합니다.

9.1. 개요

이 문서는 Red Hat OpenShift Container Platform에서 Ansible Automation Platform 버전 2.4 및 2.5를 2.6으로 업그레이드하는 데 도움이 될 수 있습니다. 이 문서는 Ansible Automation Platform 2.6의 최신 버전으로의 업그레이드에 적용됩니다.

Ansible Automation Platform Operator는 자동화 컨트롤러 및 자동화 허브의 배포, 업그레이드, 백업 및 복원을 관리합니다. 또한 Ansible Automation Platform Resource Operator에서 AnsibleJob 및 JobTemplate 리소스의 배포를 처리합니다.

각 Operator 버전에는 기본 자동화 컨트롤러 및 자동화 허브 버전이 있습니다. Operator가 업그레이드되면 사양에서 덮어쓰지 않는 한 Operator가 관리하는 자동화 컨트롤러 및 자동화 허브 배포도 업그레이드합니다.

Ansible Automation Platform의 OpenShift 배포는 기본 제공 OLM(Operator Lifecycle Management) 기능을 사용합니다. 자세한 내용은 Operator Lifecycle Manager 개념 및 리소스를 참조하십시오. OpenShift는 Subscription, CSV, InstallPlan 및 OperatorGroup 오브젝트를 사용하여 이를 수행합니다. 대부분의 사용자는 이러한 리소스와 직접 상호 작용할 필요가 없습니다. 이는 OperatorHub 에서 Ansible Automation Platform Operator를 설치하고 OpenShift 콘솔 UI의 서브스크립션 탭을 통해 관리할 때 생성됩니다. 자세한 내용은 웹 콘솔 액세스를 참조하십시오.

Subscription tab

9.2. 업그레이드 고려 사항

버전 2.4에서 업그레이드하는 경우 Ansible Automation Platform Operator 업그레이드를 계속합니다.

업그레이드 중인 Red Hat Ansible Automation Platform 버전에서 OpenShift Container Platform 버전을 지원하지 않는 경우 먼저 OpenShift Container Platform 클러스터를 지원되는 버전으로 업그레이드해야 합니다.

필요한 OpenShift Container Platform 버전을 확인하려면 Red Hat Ansible Automation Platform 라이프 사이클 을 참조하십시오.

클러스터 업그레이드에 대한 자세한 내용은 클러스터 업데이트를 참조하십시오.

9.3. 사전 요구 사항

Ansible Automation Platform Operator의 최신 버전으로 업그레이드하려면 다음을 수행해야 합니다.

  • 시스템이 테스트된 배포 모델 가이드의 Operator 토폴로지 섹션에 자세히 설명된 시스템 요구 사항을 충족하는지 확인합니다.
  • AutomationControllerBackup 및 AutomationHubBackup 오브젝트를 생성합니다. 이에 대한 도움말은 Operator 환경에 대한 백업 및 복구에서 참조하십시오.
  • 업그레이드할 새로운 Ansible Automation Platform 버전과 중간 버전의 릴리스 노트 를 검토하십시오.
  • 수행할 업그레이드 유형을 결정합니다. 자세한 내용은 채널 업그레이드 섹션을 참조하십시오.

9.4. 채널 업그레이드

Ansible Automation Platform 2.4에서 버전 2.6으로 업그레이드하려면 "채널"에서 업데이트를 검색해야 합니다. 채널은 업데이트에 액세스할 수 있는 위치를 나타냅니다. 현재 OpenShift 콘솔 UI에 있습니다.

Update channel

9.4.1. 채널 내 업그레이드

대부분의 업그레이드는 다음과 같이 채널 내에서 발생합니다.

  1. redhat-operator CatalogSource를 통해 시장에서 새 업데이트를 사용할 수 있습니다.
  2. 이 시스템은 Ansible Automation Platform 서브스크립션에 대한 새 InstallPlan을 자동으로 생성합니다.

    • Manual 로 설정하면 InstallPlan이 OpenShift UI에서 수동 승인이 필요합니다.
    • Automatic 으로 설정하면 새 버전을 사용할 수 있는 즉시 업그레이드됩니다.

      참고

      설치 또는 업그레이드 중에 Ansible Automation Platform Operator 서브스크립션에 수동 설치 전략을 설정합니다. 선택한 업데이트 채널에서 사용 가능한 경우 업그레이드를 승인하라는 메시지가 표시됩니다. stable-2.5와 같은 안정적인 채널은 각 X.Y 릴리스에 사용할 수 있습니다.

  3. 이전 서브스크립션과 함께 새 서브스크립션, CSV 및 Operator 컨테이너가 생성됩니다. 성공적으로 설치한 후 이전 리소스가 정리됩니다.

9.4.2. 채널 간 업그레이드

X.Y 채널 간의 업그레이드는 항상 수동 및 의도적입니다. 메이저 버전 및 마이너 버전의 안정적인 채널은 Operator 카탈로그에 있습니다. 현재 버전 2.x만 사용할 수 있으므로 채널이 거의 없습니다. 최신 패치를 위해 최신 마이너 버전 채널을 사용하는 것이 좋습니다.

수동 업그레이드에 대한 서브스크립션이 설정된 경우 UI에서 업그레이드를 승인해야 합니다. 그런 다음 시스템은 Operator를 해당 채널의 최신 버전으로 업그레이드합니다.

참고

설치 또는 업그레이드 중에 Ansible Automation Platform Operator 서브스크립션에 수동 설치 전략을 설정하는 것이 좋습니다. 선택한 업데이트 채널에서 업그레이드를 사용할 수 있을 때 업그레이드를 승인하라는 메시지가 표시됩니다. stable-2.5와 같은 안정적인 채널은 각 X.Y 릴리스에 사용할 수 있습니다.

최신 채널에서 제공되는 컨테이너는 OS 업그레이드 및 중요한 수정 사항에 대해 정기적으로 업데이트됩니다. 이를 통해 고객은 중요한 패치 및 CVE 수정을 더 빠르게 받을 수 있습니다. 마이너 릴리스 및 주요 릴리스의 경우 더 큰 변경 사항 및 새로운 기능이 저장됩니다.

각 메이저 또는 마이너 버전 채널에는 해당 "클러스터 범위" 채널을 사용할 수 있습니다. 클러스터 범위 채널에서는 모든 네임스페이스를 관리할 수 있는 Operator를 배포하지만 클러스터 범위가 아닌 채널은 자체 네임스페이스의 리소스만 관리할 수 있습니다.

중요

클러스터 범위 번들은 네임스페이스 범위 번들과 호환되지 않습니다. 지원되지 않으므로 일반 (stable-2.6) 채널과 클러스터 범위 (stable-2.6-cluster-scoped) 채널을 전환하지 마십시오.

9.5. Ansible Automation Platform Operator 업그레이드

OpenShift Container Platform에서 최신 버전의 Ansible Automation Platform Operator로 업그레이드하려면 다음 절차를 사용할 수 있습니다.

참고

버전 2.4에 있는 경우 2.5를 건너뛰고 버전 2.6으로 바로 업그레이드하는 것이 좋습니다.

2.4에서 2.5로 업그레이드한 경우 레거시 인증기 기능이 제거되었으므로 2.6로 업그레이드하기 전에 인증 방법과 사용자를 마이그레이션해야 합니다.

사전 요구 사항

중요

이벤트 기반 Ansible 2.4에서 업그레이드하는 것은 지원되지 않습니다. 프로덕션 환경에서 이벤트 기반 Ansible 2.4를 사용하는 경우 업그레이드하기 전에 Red Hat에 문의하십시오.

프로세스

  1. OpenShift Container Platform 4에 로그인합니다.
  2. Operators(운영자) InstalledOperators 로 이동합니다.
  3. 프로젝트 네임스페이스에 설치된 Ansible Automation Platform Operator를 선택합니다.
  4. 서브스크립션 탭을 선택합니다.
  5. 채널을 변경합니다.

    1. 버전 2.4에서 업그레이드하려면 채널을 stable-2.6 으로 변경합니다.
    2. 버전 2.5에서 업그레이드하려면 채널을 stable-2.6 으로 변경합니다.
  6. 이렇게 하면 사용자에 대한 InstallPlan이 생성됩니다. InstallPlan 프리뷰 를 클릭합니다.
  7. 승인 을 클릭합니다.
  8. Ansible Automation Platform UI를 사용하여 CR(사용자 정의 리소스)을 생성합니다. 자동화 컨트롤러 및 자동화 허브 UI는 플랫폼 게이트웨이 UI에서 모든 SSO 구성이 지원될 때까지 유지됩니다.

검증

Operator설치된 Operator로 이동하여 Ansible Automation Platform에서 버전 번호가 2.6.x로 시작하여 성공적으로 업그레이드되었는지 확인할 수 있습니다.

또한 Ansible Automation Platform Operator 배포로 이동하고 모든 인스턴스를 클릭하여 모든 인스턴스가 올바르게 업그레이드되었는지 확인합니다. 모든 Pod에 오류 상태가 표시되는 Pod가 없는 Running 또는 Completed 상태가 표시되어야 합니다.

9.6. Ansible Automation Platform 사용자 정의 리소스 생성

OpenShift Container Platform에서 최신 버전의 Ansible Automation Platform Operator로 업그레이드한 후 동일한 네임스페이스에서 기존 배포의 이름을 지정하는 Ansible Automation Platform CR(사용자 정의 리소스)을 생성할 수 있습니다.

다음 예제에서는 기존 자동화 컨트롤러 및 자동화 허브 배포와 함께 최신 버전으로 업그레이드한 후 새 이벤트 기반 Ansible 설정을 배포하는 단계를 간략하게 설명합니다.

부록 에는 다양한 배포에 대한 Ansible Automation Platform CR의 더 많은 예가 포함되어 있습니다.

프로세스

  1. Red Hat OpenShift Container Platform에 로그인합니다.
  2. Operators(운영자) InstalledOperators 로 이동합니다.
  3. Ansible Automation Platform Operator 배포를 선택합니다.
  4. 세부 정보 탭을 선택합니다.
  5. Ansible Automation Platform 타일에서 인스턴스 생성을 클릭합니다.
  6. Create Ansible Automation Platform 페이지에서 이름 필드에 인스턴스의 이름을 입력합니다.
  7. YAML 보기를 클릭하고 다음 YAML(aap-existing-controller-and-hub-new-eda.yml)을 붙여넣습니다.

    ---
    apiVersion: aap.ansible.com/v1alpha1
    kind: AnsibleAutomationPlatform
    metadata:
      name: myaap
    spec:
      # Development purposes only
      no_log: false
    
      controller:
        name: existing-controller #obtain name from controller CR
        disabled: false
    
      eda:
        disabled: false
    
      hub:
        name: existing-hub
        disabled: false
    Copy to Clipboard Toggle word wrap
  8. 생성을 클릭합니다.

    참고

    YAML 사양에 기본 이미지를 지정하여 자동화 컨트롤러, 자동화 허브 또는 플랫폼 리소스 앱 이미지에 대한 Operator의 기본 이미지를 덮어쓸 수 있습니다. 이를 통해 Operator를 업데이트하지 않고 컨트롤러와 같은 특정 배포를 업그레이드할 수 있습니다.

    그러나 권장되는 접근 방식은 Operator를 업그레이드하고 기본 이미지 값을 사용하는 것입니다.

    검증

    Ansible Automation Platform Operator 배포로 이동하여 모든 인스턴스를 클릭하여 모든 인스턴스가 올바르게 배포되었는지 확인합니다. Ansible Automation Platform 인스턴스 및 배포된 AutomationController, EDAAutomationHub 인스턴스가 여기에 표시됩니다.

또는 명령줄에서 oc get route 를 실행하여 모든 인스턴스가 올바르게 배포되었는지 확인할 수 있습니다.

업그레이드 패치를 사용하여 Operator 기반 Ansible Automation Platform을 업데이트할 수 있습니다.

10.1. OpenShift Container Platform에서 Ansible Automation Platform 업데이트 패치

OpenShift Container Platform에서 Ansible Automation Platform 설치에 대한 패치 업데이트를 수행하면 대부분의 업데이트가 채널 내에서 수행됩니다.

  1. 시장에서 새 업데이트를 사용할 수 있게 됩니다(redhat-operator CatalogSource를 통해).
  2. Ansible Automation Platform 서브스크립션에 대해 새 InstallPlan이 자동으로 생성됩니다. 서브스크립션이 Manual로 설정된 경우 OpenShift UI에서 InstallPlan을 수동으로 승인해야 합니다. 서브스크립션이 자동으로 설정된 경우 새 버전을 사용할 수 있는 즉시 업그레이드됩니다.

    참고

    Ansible Automation Platform Operator 서브스크립션(Operator 설치 또는 업그레이드 시 설정)에 수동 설치 전략을 설정하는 것이 좋습니다. 선택한 업데이트 채널에서 사용 가능하게 되면 업그레이드를 승인하라는 메시지가 표시됩니다. 각 X.Y 릴리스에 대한 안정적인 채널(예: stable-2.5)을 사용할 수 있습니다.

  3. 이전 서브스크립션, CSV 및 컨테이너와 함께 새 Subscription, CSV, Operator 컨테이너가 생성됩니다. 그런 다음 새 설치에 성공하면 이전 리소스가 정리됩니다.

11장. Red Hat Ansible Automation Platform Operator에서 실행 노드 활성화

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

참고

Receptor 노드에 사용자 정의 인증서를 사용하는 경우 인증서에는 1.3.6.1.4.1.2312.19.1 인 인증서의 SAN(주체 대체 이름)에 지정된 otherName 필드가 필요합니다. 자세한 내용은 메시 TLS 표시 를 참조하십시오.

수신기는 와일드카드 인증서 사용을 지원하지 않습니다. 또한 TLS 호스트 이름 검증을 올바르게 수행하려면 각 수신기 인증서의 호스트 FQDN이 SAN에 지정되어 있어야 합니다.

11.1. Red Hat Ansible Automation Platform Operator에 실행 노드 추가

Ansible Automation Platform 사용자 인터페이스에서 실행 노드를 추가할 수 있습니다.

사전 요구 사항

  • 자동화 컨트롤러 인스턴스입니다.
  • 수신기 컬렉션 패키지가 설치되어 있습니다.
  • Ansible Automation Platform 리포지토리 ansible-automation-platform-2.6-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
    Copy to Clipboard Toggle word wrap
  10. 터미널을 열고 플레이북을 저장한 디렉터리로 이동합니다.
  11. 번들 실행을 설치하려면 다음을 수행합니다.

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

검증

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

sudo systemctl status receptor.service
Copy to Clipboard Toggle word wrap

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

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

watch podman ps
Copy to Clipboard Toggle word wrap

추가 리소스

12장. Ansible Automation Platform Resource Operator

12.1. 리소스 Operator 개요

리소스 Operator는 플랫폼 게이트웨이 배포를 생성한 후 배포할 수 있는 CR(사용자 정의 리소스)입니다.

Resource Operator를 사용하면 YAML 파일에서 프로젝트, 작업 템플릿 및 인벤토리와 같은 리소스를 정의할 수 있습니다.

그런 다음 자동화 컨트롤러에서 YAML 파일을 사용하여 이러한 리소스를 생성합니다. 양식 보기를 통해 YAML 코드의 키와 값을 입력하라는 메시지를 표시하는 YAML을 생성할 수 있습니다. 또는 YAML을 직접 사용하려면 YAML 보기를 선택할 수 있습니다.

Resource Operator는 다음 CR을 제공합니다.

  • AnsibleJob
  • JobTemplate
  • 자동화 컨트롤러 프로젝트
  • 자동화 컨트롤러 일정
  • 자동화 컨트롤러 워크플로
  • 자동화 컨트롤러 워크플로 템플릿:
  • 자동화 컨트롤러 인벤토리
  • 자동화 컨트롤러 인증 정보

위의 사용자 정의 리소스에 대한 자세한 내용은 자동화 실행 사용을 참조하십시오.

12.2. Resource Operator 사용

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

사전 요구 사항

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

다음 단계

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

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

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

다음 절차에 따라 플랫폼 게이트웨이 UI에서 사용자에 대한 OAuth2 토큰을 생성합니다.

참고

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

프로세스

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

    참고

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

12.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/
    Copy to Clipboard Toggle word wrap
  2. 호스트 및 토큰 값으로 파일을 편집합니다.
  3. kubectl create 명령을 실행하여 클러스터에 적용합니다.
kubectl create -f controller-connection-secret.yml
Copy to Clipboard Toggle word wrap

12.5. Resource Operator에 대한 사용자 정의 리소스 생성

Resource Operator를 사용하여 Kubernetes 클러스터에서 직접 자동화 컨트롤러 리소스를 관리합니다. 이 섹션에서는 AnsibleJob, JobTemplate, AnsibleProject 등과 같은 사용자 정의 리소스를 생성하는 절차를 제공합니다.

12.5.1. AnsibleJob 사용자 정의 리소스 생성

AnsibleJob 사용자 정의 리소스는 Kubernetes 시크릿(자동화 컨트롤러 호스트 URL, 토큰)에 지정된 자동화 컨트롤러 인스턴스에서 작업을 시작합니다. 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
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap
    참고

    인벤토리 및 추가 변수를 구성하는 경우 시작 시 프롬프트를 활성화해야 합니다. 자동화 컨트롤러 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
    Copy to Clipboard Toggle word wrap

12.5.2. JobTemplate 사용자 정의 리소스 생성

작업 템플릿은 Ansible 작업을 실행하기 위한 매개 변수 정의 및 집합입니다. 자세한 내용은 자동화 실행 가이드의 작업 템플릿 섹션을 참조하십시오.

프로세스

  • 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
    Copy to Clipboard Toggle word wrap

12.5.3. 자동화 컨트롤러 프로젝트 사용자 정의 리소스 생성

프로젝트는 자동화 컨트롤러에 표시되는 Ansible 플레이북의 논리 컬렉션입니다. 자세한 내용은 자동화 실행 가이드의 프로젝트 섹션을 참조하십시오.

프로세스

  • 자동화 컨트롤러 프로젝트 사용자 정의 리소스를 생성하여 자동화 컨트롤러에서 프로젝트를 생성합니다.

    apiVersion: tower.ansible.com/v1alpha1
    kind: AnsibleProject
    metadata:
      name: git
    spec:
      repo: https://github.com/ansible/ansible-tower-samples
      branch: main
      name: ProjectDemo-git
      scm_type: git
      organization: Default
      description: demoProject
      connection_secret: controller-access
      runner_pull_policy: IfNotPresent
    Copy to Clipboard Toggle word wrap

12.5.4. 자동화 컨트롤러 일정 사용자 정의 리소스 생성

AnsibleSchedule 사용자 정의 리소스를 정의하여 자동화 컨트롤러에 일정을 생성하여 필요한 apiVersion,kind 및 unique metadata.name 을 지정합니다.

프로세스

  • 자동화 컨트롤러 스케줄 사용자 정의 리소스를 생성하여 자동화 컨트롤러에서 스케줄을 생성합니다.

    apiVersion: tower.ansible.com/v1alpha1
    kind: AnsibleSchedule
    metadata:
      name: schedule
    spec:
      connection_secret: controller-access
      runner_pull_policy: IfNotPresent
      name: "Demo Schedule"
      rrule: "DTSTART:20210101T000000Z RRULE:FREQ=DAILY;INTERVAL=1;COUNT=1"
      unified_job_template: "Demo Job Template"
    Copy to Clipboard Toggle word wrap

12.5.5. 자동화 컨트롤러 워크플로 사용자 정의 리소스 생성

워크플로우를 사용하면 인벤토리, 플레이북 또는 권한을 공유하거나 공유하지 않을 수 있는 일련의 분산된 작업 템플릿(또는 워크플로우 템플릿)을 구성할 수 있습니다. 자세한 내용은 자동화 실행 가이드 의 자동화 컨트롤러의 워크플로우 섹션을 참조하십시오.

프로세스

  • 워크플로우 사용자 정의 리소스를 생성하여 자동화 컨트롤러에서 워크플로우를 생성합니다.

    apiVersion: tower.ansible.com/v1alpha1
    kind: AnsibleWorkflow
    metadata:
      name: workflow
    spec:
      inventory: Demo Inventory
      workflow_template_name: Demo Job Template
      connection_secret: controller-access
      runner_pull_policy: IfNotPresent
    Copy to Clipboard Toggle word wrap

12.5.6. 자동화 컨트롤러 워크플로 템플릿 사용자 정의 리소스 생성

워크플로우 작업 템플릿은 일련의 분산된 리소스를 결합하여 릴리스 프로세스의 일부인 전체 작업 세트를 단일 단위로 추적합니다.

자세한 내용은 자동화 실행 가이드의 워크플로우 작업 템플릿 섹션을 참조하십시오.

프로세스

  • 워크플로우 템플릿 사용자 정의 리소스를 생성하여 자동화 컨트롤러에서 워크플로우 템플릿을 생성합니다.

    apiVersion: tower.ansible.com/v1alpha1
    kind: WorkflowTemplate
    metadata:
      name: workflowtemplate-sample
    spec:
      connection_secret: controller-access
      name: ExampleTowerWorkflow
      description: Example Workflow Template
      organization: Default
      inventory: Demo Inventory
      workflow_nodes:
      - identifier: node101
        unified_job_template:
          name: Demo Job Template
          inventory:
            organization:
              name: Default
          type: job_template
      - identifier: node102
        unified_job_template:
          name: Demo Job Template
          inventory:
            organization:
              name: Default
          type: job_template
    Copy to Clipboard Toggle word wrap

12.5.7. 자동화 컨트롤러 인벤토리 사용자 정의 리소스 생성

Ansible Automation Platform은 인벤토리 파일을 사용하여 단일 명령으로 많은 수의 호스트를 관리할 수 있습니다.

또한 인벤토리는 지정해야 하는 명령줄 옵션 수를 줄임으로써 Ansible Automation Platform을 보다 효율적으로 사용할 수 있습니다. 자세한 내용은 자동화 실행 사용 가이드의 인벤토리 섹션을 참조하십시오.

프로세스

  • 인벤토리 사용자 정의 리소스를 생성하여 자동화 컨트롤러에서 인벤토리를 생성합니다.

    metadata:
      name: inventory-new
    spec:
      connection_secret: controller-access
      description: my new inventory
      name: newinventory
      organization: Default
      state: present
      instance_groups:
        - default
      variables:
        string: "string_value"
        bool: true
        number: 1
        list:
          - item1: true
          - item2: "1"
        object:
          string: "string_value"
          number: 2
    Copy to Clipboard Toggle word wrap

12.5.8. 자동화 컨트롤러 인증 정보 사용자 정의 리소스 생성

인증 정보는 머신에 대해 작업을 시작하고, 인벤토리 소스와 동기화하고, 버전 제어 시스템에서 프로젝트 콘텐츠를 가져올 때 자동화 컨트롤러 사용자를 인증합니다.

SSH 및 AWS는 가장 일반적으로 사용되는 인증 정보입니다. 지원되는 인증 정보의 전체 목록은 자동화 실행 가이드의 인증 정보 유형 섹션을 참조하십시오.

값 정의에 대한 도움말은 Red Hat Ansible Automation Platform API KCS 문서 OpenAPI(Swagger) 파일을 참조하십시오.

참고

https://<aap-instance>/api/controller/v2/credential_types/ 를 사용하여 인스턴스의 인증 정보 유형 목록을 볼 수 있습니다. 전체 목록을 가져오려면 다음 curl 명령을 사용합니다.

export AAP_TOKEN="your-oauth2-token"
export AAP_URL="https://your-aap-controller.example.com"

curl -s -H "Authorization: Bearer $AAP_TOKEN" "$AAP_URL/api/controller/v2/credential_types/" | jq -r '.results[].name'
Copy to Clipboard Toggle word wrap

프로세스

  • 인증 정보 사용자 정의 리소스를 생성하여 자동화 컨트롤러에서 AWS 또는 SSH 인증 정보를 생성합니다.

    • SSH 인증 정보:

      apiVersion: tower.ansible.com/v1alpha1
      kind: AnsibleCredential
      metadata:
        name: ssh-cred
      spec:
        name: ssh-cred
        organization: Default
        connection_secret: controller-access
        description: "SSH credential"
        type: "Machine"
        ssh_username: "cat"
        ssh_secret: my-ssh-secret
        runner_pull_policy: IfNotPresent
      Copy to Clipboard Toggle word wrap
    • AWS 인증 정보:

      apiVersion: tower.ansible.com/v1alpha1
      kind: AnsibleCredential
      metadata:
        name: aws-cred
      spec:
        name: aws-access
        organization: Default
        connection_secret: controller-access
        description: "This is a test credential"
        type: "Amazon Web Services"
        username_secret: aws-secret
        password_secret: aws-secret
        runner_pull_policy: IfNotPresent
      Copy to Clipboard Toggle word wrap

이 가이드에서는 OpenShift Container Platform에서 Ansible Automation Platform 배포의 일반적인 문제를 진단하고 해결하는 데 도움이 되는 명령 및 팁 컬렉션을 제공합니다. 로그를 보고, 리소스를 검사하고, 지원을 위해 진단 데이터를 수집하는 방법을 배웁니다.

13.1. 자동화 컨트롤러 Operator 로그 이해

Operator가 Automation Controller 인스턴스를 배포할 때 Operator 컨테이너 내에서 설치 프로그램 역할을 실행합니다. 자동화 컨트롤러의 상태가 실패한 경우 automation -controller-operator 컨테이너 로그를 확인해야 합니다. 이러한 로그는 설치 프로그램 역할의 출력을 제공하며 배포 문제를 디버깅하는 데 중요한 첫 번째 단계입니다.

13.2. OpenShift Container Platform에서 이벤트 보기

OpenShift Container Platform 웹 콘솔에서 이벤트를 보고 오류를 모니터링하고 문제를 해결할 수 있습니다. 이를 통해 사용자 정의 리소스 및 관련 이벤트의 상태를 검사하여 문제를 신속하게 진단할 수 있습니다.

먼저 Ansible Automation Platform CR(사용자 정의 리소스)의 상태 조건을 검토한 다음 중첩된 CR에 오류가 있는지 확인하여 디버그할 수 있습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. 탐색 메뉴에서 이벤트를 선택합니다.
  3. 프로젝트 목록에서 프로젝트를 선택합니다.
  4. 특정 리소스에 대한 이벤트를 보려면 해당 리소스 페이지로 이동합니다. Pod 및 배포와 같은 많은 리소스 페이지에는 자체 이벤트 탭이 있습니다.
  5. Pod 세부 정보 페이지로 가져올 리소스를 선택합니다.

검증

Pod 세부 정보 페이지의 Conditions 섹션을 확인하여 Message 열에 오류가 나열되지 않았는지 확인합니다.

13.3. Operator 로그 보기

다음 절차는 automation-controller-operator Pod의 로그를 확인하는 방법의 예입니다.

프로세스

  1. Pod 이름을 찾으려면 다음을 실행합니다.

    oc get pods | grep operator
    Copy to Clipboard Toggle word wrap
  2. Pod의 로그를 보려면 다음을 실행합니다.

    oc logs <operator-pod-name> -f
    Copy to Clipboard Toggle word wrap
    1. 또는 먼저 Pod 이름을 가져오지 않고 로그를 보려면 다음을 실행합니다.

      oc logs deployments/automation-controller-operator-controller-manager -c automation-controller-manager -f
      Copy to Clipboard Toggle word wrap

13.4. 로그 세부 정보 표시 구성

CR의 spec 섹션에서 no_logfalse 로 설정하여 모든 CR(사용자 정의 리소스)에서 디버깅할 작업 출력을 활성화할 수 있습니다.

그런 다음 로그에 no_logtrue 로 설정된 실패한 작업의 출력이 표시됩니다. 다음 절차에서는 자동화 컨트롤러를 예로 사용하지만 Core Ansible Automation Platform Resources 섹션에 나열된 모든 CR은 no_log 를 지원합니다.

프로세스

  1. 자동화 컨트롤러 CR을 편집하고 사양에서 no_log 필드를 false 로 설정합니다.

    apiVersion: automationcontroller.ansible.com/v1beta1
    kind: AutomationController
    metadata:
      name: controller-demo
    spec:
      no_log: false
    Copy to Clipboard Toggle word wrap
    참고

    로그에 민감한 데이터가 노출될 수 있습니다. 문제를 적극적으로 디버깅하지 않는 한 프로덕션 클러스터에서 이 값을 일반적으로 true 로 설정해야 합니다.

  2. Operator에서 Ansible Playbook 상세 정보를 늘리려면 주석을 사용하여 상세 정보 표시 수준을 설정합니다.

    annotations:
        ansible.sdk.operatorframework.io/verbosity: "4"
    Copy to Clipboard Toggle word wrap

13.5. OpenShift Container Platform 리소스 검사

OpenShift Container Platform 리소스를 검사하려면 oc 명령을 사용하여 리소스의 요약 또는 전체 YAML 정의를 가져와야 합니다.

프로세스

  1. 사람이 읽을 수 있는 리소스 요약을 보려면 다음을 실행합니다.

    oc describe -n <namespace> <resource> <resource-name>
    Copy to Clipboard Toggle word wrap
  2. 리소스의 전체 YAML 정의를 보려면 -o yaml 플래그를 사용합니다.

    oc get -n <namespace> <resource> <resource-name> -o yaml
    Copy to Clipboard Toggle word wrap
    • 예를 들어 자동화 컨트롤러 사용자 정의 리소스의 YAML을 가져오려면 다음을 실행합니다.

      oc get -n aap automationcontroller aap -o yaml
      Copy to Clipboard Toggle word wrap

13.6. 핵심 Ansible Automation Platform 리소스

다음 표에는 Ansible Automation Platform Operator가 관리하는 코어 CR(사용자 정의 리소스)이 나열되어 있습니다. 이러한 리소스를 이해하면 고급 문제 해결 및 구성에 도움이 됩니다.

Expand
리소스 이름description

ansibleautomationplatform

전체 Ansible Automation Platform 배포를 위한 CR입니다.

ansibleautomationplatformbackup

전체 Ansible Automation Platform 인스턴스의 백업을 생성하기 위한 CR입니다.

ansibleautomationplatformrestore

백업에서 전체 Ansible Automation Platform 인스턴스를 복원하는 CR입니다.

automationcontroller

자동화 컨트롤러 인스턴스의 원하는 상태를 정의하는 CR입니다.

Automationcontrollerbackup

자동화 컨트롤러 데이터 및 구성의 백업을 생성하기 위한 CR입니다.

automationcontrollerrestore

백업에서 자동화 컨트롤러를 복원하는 CR입니다.

automationhub

자동화 허브(Galaxy) 인스턴스 배포를 위한 CR.

Automationhubbackup

자동화 허브 데이터 및 구성의 백업을 생성하기 위한 CR입니다.

automationhubrestore

백업에서 자동화 허브 복원을 위한 CR입니다.

eda

이벤트 기반 Ansible(EDA) 인스턴스를 배포하기 위한 CR입니다.

edabackup

EDA 데이터 및 구성의 백업을 생성하기 위한 CR입니다.

edarestore

백업에서 EDA를 복원하기 위한 CR입니다.

ansiblelightspeed

Red Hat Ansible Lightspeed 인스턴스 배포를 위한 CR.

13.7. 표준 Kubernetes 리소스

표준 Kubernetes 리소스는 OpenShift Container Platform의 핵심 부분입니다. 다음 표에서는 애플리케이션의 상태 및 구성 문제를 해결하기 위해 검사할 수 있는 표준 리소스에 대해 설명합니다.

Expand
리소스 이름description

Pod

애플리케이션 워크로드를 실행하는 하나 이상의 컨테이너가 포함된 배포 가능한 최소 단위입니다.

배포

Pod 구성 및 스케일링을 관리합니다.

pvc

PVC(PersistentVolumeClaim)는 영구 데이터 스토리지에 사용되는 스토리지 리소스에 대한 요청입니다.

서비스

클러스터 내에서 안정적인 IP 주소 및 DNS 이름을 사용하여 포드를 네트워크 서비스로 노출합니다.

Ingress

클러스터 내의 서비스에 대한 외부 HTTP 및 HTTPS 액세스를 관리합니다.

라우트

외부에서 서비스를 노출하기 위한 OpenShift 관련 리소스(수정과 유사)입니다.

secrets

암호, 토큰 및 인증서와 같은 중요한 데이터를 저장합니다.

ServiceAccount

다른 Kubernetes 리소스에 대한 권한에 액세스하기 위해 포드에서 실행되는 프로세스의 ID를 제공합니다.

13.8. 사용자 정의 리소스 정의 구성 매개변수 검색

Ansible Automation Platform Operator는 각각 고유한 구성 매개변수를 사용하여 여러 CR(사용자 정의 리소스)을 관리합니다. oc explain 명령을 사용하여 AnsibleAutomationPlatform CR 및 해당 중첩된 구성 요소에 사용 가능한 모든 구성 옵션을 검색합니다.

프로세스

  1. 최상위 CR에 사용 가능한 모든 구성 매개변수를 보려면 다음을 실행합니다.

    oc explain ansibleautomationplatform.spec
    Copy to Clipboard Toggle word wrap
  2. 특정 중첩 섹션을 보려면 직접 쿼리합니다.

    oc explain automationcontroller.spec.postgres_configuration_secret
    oc explain automationcontroller.spec.route_tls_termination_mechanism
    Copy to Clipboard Toggle word wrap
  3. 모든 중첩된 필드를 한 번에 검색하려면 --recursive 플래그를 사용합니다.

    oc explain automationcontroller.spec --recursive
    Copy to Clipboard Toggle word wrap

13.9. 진단 정보 수집

oc adm must-gather 명령을 사용하여 클러스터 및 Ansible Automation Platform 구성 요소에 대한 포괄적인 진단 데이터를 수집합니다. 이 데이터는 Red Hat 지원에 문의할 때 중요합니다.

프로세스

  1. must-gather 툴을 시작하려면 다음을 실행합니다.

    oc adm must-gather --image=registry.redhat.io/ansible-automation-platform-25/aap-must-gather-rhel8
    Copy to Clipboard Toggle word wrap
    참고

    버전 2.6의 경우 기본 이미지 이름이 registry.redhat.io/ansible-automation-platform-26/aap-must-gather-rhel9 로 변경됩니다.

  2. 수집된 데이터를 보고 omc 툴을 사용하여 라이브 클러스터인 것처럼 must-gather tarball을 쿼리합니다.

    omc use <path-to-must-gather>
    omc get pods
    Copy to Clipboard Toggle word wrap

13.10. Pod 디버깅

Pod가 실패하거나 충돌하는 경우 oc debug 명령을 사용합니다. 이 명령은 구성이 동일한 새 Pod를 생성하고 지정한 Pod와 마운트하여 디버깅을 위해 액세스할 수 있습니다.

프로세스

  • Pod에 연결하려면 다음을 실행합니다.

    oc debug <pod-name>
    Copy to Clipboard Toggle word wrap

14장. 부록: Red Hat Ansible Automation Platform 사용자 정의 리소스

이 부록은 다양한 배포 시나리오에 대한 Ansible Automation Platform 사용자 정의 리소스에 대한 참조를 제공합니다.

작은 정보

name 변수 아래에 구성 요소 이름을 지정하여 기존 구성 요소를 연결할 수 있습니다. name 을 사용하여 새 구성 요소의 사용자 지정 이름을 생성할 수도 있습니다.

14.1. 사용자 정의 리소스

14.1.1. aap-existing-controller-and-hub-new-eda.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  # Development purposes only
  no_log: false

  controller:
    name: existing-controller
    disabled: false

  eda:
    disabled: false

  hub:
    name: existing-hub
    disabled: false
Copy to Clipboard Toggle word wrap

14.1.2. aAP-all-defaults.yml

apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  # Development purposes only
  no_log: false

  # Platform
  ## uncomment to test bundle certs
  # bundle_cacert_secret: gateway-custom-certs

  # Components

  hub:
    disabled: false
    ## uncomment if using file storage for Content pod
    storage_type: file
    file_storage_storage_class: nfs-local-rwx
    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

# End state:
# * Automation controller deployed and named: myaap-controller
# * * Event-Driven Ansible deployed and named: myaap-eda
# * * Automation hub deployed and named: myaap-hub
Copy to Clipboard Toggle word wrap

14.1.3. aap-existing-controller-only.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  # Development purposes only
  no_log: false

  controller:
    name: existing-controller

  eda:
    disabled: true

  hub:
    disabled: true
    ## uncomment if using file storage for Content pod
    # storage_type: file
    # file_storage_storage_class: nfs-local-rwx
    # 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


# End state:
# * Automation controller: existing-controller registered with Ansible Automation Platform UI
# * * Event-Driven Ansible deployed and named: myaap-eda
# * * Automation hub deployed and named: myaap-hub
Copy to Clipboard Toggle word wrap

14.1.4. aap-existing-hub-and-controller.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  # Development purposes only
  no_log: false

  controller:
    name: existing-controller
    disabled: false

  eda:
    disabled: true

  hub:
    name: existing-hub
    disabled: false

# End state:
# * Automation controller: existing-controller registered with Ansible Automation Platform UI
# * * Event-Driven Ansible deployed and named: myaap-eda
# * * Automation hub: existing-hub registered with Ansible Automation Platform UI
Copy to Clipboard Toggle word wrap

14.1.5. aap-existing-hub-controller-eda.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  # Development purposes only
  no_log: false

  controller:
    name: existing-controller # <-- this is the name of the existing AutomationController CR
    disabled: false

  eda:
    name: existing-eda
    disabled: false

  hub:
    name: existing-hub
    disabled: false

# End state:
# * Controller: existing-controller registered with Ansible Automation Platform UI
# * * Event-Driven Ansible: existing-eda registered with Ansible Automation Platform UI
# * * Automation hub: existing-hub registered with Ansible Automation Platform UI
#
# Note: The automation controller, Event-Driven Ansible, and automation hub names must match the names of the existing.
# Automation controller, Event-Driven Ansible, and automation hub CRs in the same namespace as the Ansible Automation Platform CR. If the names do not match, the Ansible Automation Platform CR will not be able to register the existing automation controller, Event-Driven Ansible, and automation hub with the Ansible Automation Platform UI,and will instead deploy new automation controller, Event-Driven Ansible, and automation hub instances.
Copy to Clipboard Toggle word wrap

14.1.6. aap-existing-hub-controller-eda.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  # Development purposes only
  no_log: false

  controller:
    name: existing-controller # <-- this is the name of the existing AutomationController CR
    disabled: false

  eda:
    name: existing-eda
    disabled: false

  hub:
    name: existing-hub
    disabled: false

# End state:
# * Automation controller: existing-controller registered with Ansible Automation Platform UI
# * * Event-Driven Ansible: existing-eda registered with Ansible Automation Platform UI
# * * Automation hub: existing-hub registered with Ansible Automation Platform UI
#
# Note: The automation controller, Event-Driven Ansible, and automation hub names must match the names of the existing.
# Automation controller, Event-Driven Ansible, and automation hub CRs in the same namespace as the Ansible Automation Platform CR. If the names do not match, the Ansible Automation Platform CR will not be able to register the existing automation controller, Event-Driven Ansible, and automation hub with the Ansible Automation Platform UI,and will instead deploy new automation controller, Event-Driven Ansible, and automation hub instances.
Copy to Clipboard Toggle word wrap

14.1.7. aap-fresh-controller-eda.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  # Development purposes only
  no_log: false

  controller:
    disabled: false

  eda:
    disabled: false

  hub:
    disabled: true
    ## uncomment if using file storage for Content pod
    storage_type: file
    file_storage_storage_class: nfs-local-rwx
    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

# End state:
# * Automation controller deployed and named: myaap-controller
# * * Event-Driven Ansible deployed and named: myaap-eda
# * * Automation hub disabled
# * Red Hat Ansible Lightspeed disabled
Copy to Clipboard Toggle word wrap

14.1.8. aap-fresh-external-db.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  # Development purposes only
  no_log: false

  controller:
    disabled: false

  eda:
    disabled: false

  hub:
    disabled: false
    ## uncomment if using file storage for Content pod
    storage_type: file
    file_storage_storage_class: nfs-local-rwx
    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


# End state:
# * Automation controller deployed and named: myaap-controller
# * * Event-Driven Ansible deployed and named: myaap-eda
# * * Automation hub deployed and named: myaap-hub
Copy to Clipboard Toggle word wrap

14.1.9. aap-configuring-external-db-all-default-components.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  database:
     database_secret: external-postgres-configuration-gateway
  controller:
     postgres_configuration_secret: external-postgres-configuration-controller
  hub:
     postgres_configuration_secret: external-postgres-configuration-hub
  eda:
     database:
       database_secret: external-postgres-configuration-eda
Copy to Clipboard Toggle word wrap

14.1.10. aap-configuring-existing-external-db-all-default-components.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  database:
     database_secret: external-postgres-configuration-gateway
Copy to Clipboard Toggle word wrap
참고

시스템은 플랫폼 게이트웨이에 외부 데이터베이스를 사용하고 자동화 컨트롤러, 자동화 허브 및 이벤트 기반 Ansible은 2.4에서 사용된 기존 데이터베이스를 계속 사용합니다.

14.1.11. aap-configuring-external-db-with-lightspeed-enabled.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  database:
     database_secret: external-postgres-configuration-gateway
  controller:
     postgres_configuration_secret: external-postgres-configuration-controller
  hub:
     postgres_configuration_secret: external-postgres-configuration-hub
  eda:
     database:
       database_secret: external-postgres-configuration-eda
  lightspeed:
    disabled: false
    database:
      database_secret: <secret-name>-postgres-configuration
    auth_config_secret_name: 'auth-configuration-secret'
    model_config_secret_name: 'model-configuration-secret'
Copy to Clipboard Toggle word wrap
참고

Red Hat Ansible Lightspeed를 IBM watsonx Code Assistant 사용자 가이드와 함께 따라 모델 및 인증 시크릿 생성에 도움이 될 수 있습니다.

14.1.12. aAP-fresh-install-with-settings.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  # Development purposes only
  no_log: false
  image_pull_policy: Always

  # Platform
  ## uncomment to test bundle certs
  # bundle_cacert_secret: gateway-custom-certs

  # Components
  controller:
    disabled: false
    image_pull_policy: Always

    extra_settings:
      - setting: MAX_PAGE_SIZE
        value: '501'

  eda:
    disabled: false
    image_pull_policy: Always

    extra_settings:
      - setting: EDA_MAX_PAGE_SIZE
        value: '501'

  hub:
    disabled: false
    image_pull_policy: Always

    ## uncomment if using file storage for Content pod
    storage_type: file
    file_storage_storage_class: rook-cephfs
    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

    pulp_settings:
      MAX_PAGE_SIZE: 501
      cache_enabled: false

  # lightspeed:
  #   disabled: true

# End state:
# * Automation controller deployed and named: myaap-controller
# * * Event-Driven Ansible deployed and named: myaap-eda
# * * Automation hub deployed and named: myaap-hub
Copy to Clipboard Toggle word wrap

14.1.13. aap-fresh-install.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  # Development purposes only
  no_log: false

  # Redis Mode
  # redis_mode: cluster

  # Platform
  ## uncomment to test bundle certs
  # bundle_cacert_secret: gateway-custom-certs
  # extra_settings:
  #   - setting: MAX_PAGE_SIZE
  #     value: '501'

  # Components
  controller:
    disabled: false

  eda:
    disabled: false

  hub:
    disabled: false
    ## uncomment if using file storage for Content pod
    storage_type: file
    file_storage_storage_class: nfs-local-rwx
    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

# End state:
# * Automation controller deployed and named: myaap-controller
# * * Event-Driven Ansible deployed and named: myaap-eda
# * * Automation hub deployed and named: myaap-hub
Copy to Clipboard Toggle word wrap

14.1.14. aap-fresh-only-controller.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  # Development purposes only
  no_log: false

  controller:
    disabled: false

  eda:
    disabled: true

  hub:
    disabled: true
    ## uncomment if using file storage for Content pod
    # storage_type: file
    # file_storage_storage_class: nfs-local-rwx
    # 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


# End state:
# * Automation controller: existing-controller registered with Ansible Automation Platform UI
# * * Event-Driven Ansible deployed and named: myaap-eda
# * * Automation hub deployed and named: myaap-hub
Copy to Clipboard Toggle word wrap

14.1.15. aap-fresh-only-hub.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  # Development purposes only
  no_log: false

  controller:
    disabled: true

  eda:
    disabled: true

  hub:
    disabled: false
    ## uncomment if using file storage for Content pod
    storage_type: file
    file_storage_storage_class: nfs-local-rwx
    file_storage_size: 10Gi

    # # AaaS Hub Settings
    # pulp_settings:
    #   cache_enabled: false

    ## 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: false

# End state:
# * Automation controller disabled
# * * Event-Driven Ansible disabled
# * * Automation hub deployed and named: myaap-hub
# * Red Hat Ansible Lightspeed disabled
Copy to Clipboard Toggle word wrap

14.1.16. aAP-lightspeed-enabled.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  # Development purposes only
  no_log: false

  controller:
    disabled: false

  eda:
    disabled: false

  hub:
    disabled: false
    ## uncomment if using file storage for Content pod
    storage_type: file
    file_storage_storage_class: nfs-local-rwx
    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: false

# End state:
# * Automation controller deployed and named: myaap-controller
# * * Event-Driven Ansible deployed and named: myaap-eda
# * * Automation hub deployed and named: myaap-hub
# * Red Hat Ansible Lightspeed deployed and named: myaap-lightspeed
Copy to Clipboard Toggle word wrap

14.1.17. gateway-only.yml

---
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatform
metadata:
  name: myaap
spec:
  # Development purposes only
  no_log: false

  controller:
    disabled: true

  eda:
    disabled: true

  hub:
    disabled: true

  lightspeed:
    disabled: true

# End state:
# * Platform gateway deployed and named: myaap-gateway
#   * UI is reachable at: https://myaap-gateway-gateway.apps.ocp4.example.com
# * Automation controller is not deployed
# * * Event-Driven Ansible is not deployed
# * * Automation hub is not deployed
# * Red Hat Ansible Lightspeed is not deployed
Copy to Clipboard Toggle word wrap

법적 공지

Copyright © 2025 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

© 2025 Red Hat