Openshift Container Platform에 설치
OpenShift Container Platform에서 Ansible Automation Platform Operator 설치 및 구성
초록
머리말 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Ansible Automation Platform에 관심을 가져 주셔서 감사합니다. Ansible Automation Platform은 Ansible 기반 환경에 제어, 지식, 위임을 추가하여 팀이 복잡한 다중 계층 배포를 관리하는 데 도움이 되는 상용 서비스입니다.
이 가이드에서는 OpenShift Container Platform에 Ansible Automation Platform Operator를 배포하기 위한 설치, 마이그레이션 및 업그레이드 요구 사항을 이해하는 데 도움이 됩니다.
Red Hat 문서에 관한 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
이 문서를 개선하기 위한 제안이 있거나 오류를 찾을 수 있는 경우 https://access.redhat.com 에서 기술 지원에 문의하여 요청을 열 수 있습니다.
Red Hat Ansible Automation Platform은 Red Hat Enterprise Linux 및 Red Hat Openshift에서 모두 지원됩니다.
OpenShift Operator는 Red Hat OpenShift Container Platform에 복잡한 분산 소프트웨어의 2일 차 작업을 설치하고 자동화하는 데 도움이 됩니다. Ansible Automation Platform Operator를 사용하면 Red Hat OpenShift Container Platform에 Ansible Automation Platform 구성 요소를 배포하고 관리할 수 있습니다.
이 섹션을 사용하여 Red Hat OpenShift Container Platform 환경에서 Red Hat Ansible Automation Platform 설치를 계획할 수 있습니다. 설치하기 전에 지원되는 설치 시나리오를 검토하여 요구 사항을 충족하는지 확인합니다.
1.1. Ansible Automation Platform Operator 정보 링크 복사링크가 클립보드에 복사되었습니다!
Ansible Automation Platform Operator는 OpenShift 환경에서 새로운 Ansible Automation Platform 인스턴스에 대한 클라우드 네이티브 푸시 버튼 배포를 제공합니다. Ansible Automation Platform Operator에는 자동화 컨트롤러 및 프라이빗 자동화 허브의 인스턴스를 배포하고 관리하는 리소스 유형이 포함되어 있습니다. 또한 자동화 컨트롤러 배포 내에서 작업을 정의하고 시작하기 위한 자동화 컨트롤러 작업 리소스도 포함되어 있습니다.
Kubernetes 네이티브 Operator를 사용하여 Ansible Automation Platform 인스턴스를 배포하면 Red Hat Ansible Automation Platform 배포를 위한 업그레이드 및 전체 라이프사이클 지원을 포함하여 Red Hat OpenShift Container Platform에 배포된 플레이북에서 인스턴스를 시작하는 것보다 몇 가지 이점이 있습니다.
OperatorHub의 Red Hat Operators 카탈로그에서 Ansible Automation Platform Operator를 설치할 수 있습니다.
Ansible Automation Platform Operator 인프라 토폴로지에 대한 자세한 내용은 테스트된 배포 모델에서 컨테이너 지원 토폴로지 를 참조하십시오.
1.2. OpenShift Container Platform 버전 호환성 링크 복사링크가 클립보드에 복사되었습니다!
Ansible Automation Platform 2.5를 설치하는 Ansible Automation Platform Operator는 OpenShift Container Platform 4.9 이상 버전에서 사용할 수 있습니다.
1.3. Red Hat OpenShift Container Platform에서 지원되는 설치 시나리오 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift Container Platform 웹 콘솔에서 OperatorHub를 사용하여 Ansible Automation Platform Operator를 설치할 수 있습니다.
또는 OpenShift Container Platform CLI(명령줄 인터페이스) oc 에서 Ansible Automation Platform Operator를 설치할 수 있습니다. 이에 대한 도움말은 3장. OpenShift Container Platform CLI에서 Ansible Automation Platform Operator 설치 를 참조하십시오.
Ansible Automation Platform Operator를 설치한 후에는 Ansible Automation Platform CR(사용자 정의 리소스)을 생성해야 합니다. 이를 통해 플랫폼 게이트웨이라는 단일 통합 인터페이스에서 Ansible Automation Platform 구성 요소를 관리할 수 있습니다. 버전 2.5부터는 기존 자동화 컨트롤러, 자동화 허브 또는 이벤트 기반 Ansible, 구성 요소가 있는 경우에도 Ansible Automation Platform CR을 생성해야 합니다.
기존 구성 요소가 이미 배포된 경우 Ansible Automation Platform CR에 이러한 구성 요소를 지정해야 합니다. 기존 구성 요소와 동일한 네임스페이스에 사용자 정의 리소스를 생성해야 합니다.
| 지원되는 시나리오 | 기존 구성 요소가 지원되는 시나리오 |
|---|---|
|
|
1.4. 사용자 정의 리소스 링크 복사링크가 클립보드에 복사되었습니다!
각 기본 설치 워크플로에 대한 사용자 정의 리소스를 정의할 수 있습니다.
1.5. 추가 리소스 링크 복사링크가 클립보드에 복사되었습니다!
- OpenShift Container Platform OperatorHub에 대한 자세한 내용은 OperatorHub 이해 를 참조하십시오.
2장. Red Hat OpenShift Container Platform에 Red Hat Ansible Automation Platform Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- OperatorHub에 Red Hat Ansible Automation Platform 카탈로그를 설치했습니다.
-
플랫폼에 대한
StorageClass오브젝트와ReadWriteMany액세스 모드를 사용하여 PVC(영구 볼륨 클레임)를 생성했습니다. 자세한 내용은 동적 프로비저닝 을 참조하십시오. ReadWriteMany액세스 모드를 사용하여 AWS(Amazon Web Services)에서 Red Hat OpenShift Container Platform 클러스터를 실행하려면 NFS 또는 기타 스토리지를 추가해야 합니다.-
AWS EBS(Elastic Block Store)에 대한 정보 또는
aws-ebs스토리지 클래스를 사용하려면 AWS Elastic Block Store를 사용한 영구 스토리지를 참조하십시오. -
AWS EBS의 다중 연결
ReadWriteMany액세스 모드를 사용하려면 Amazon EBS Multi-Attach를 사용하여 여러 인스턴스에 볼륨 연결을 참조하십시오.
-
AWS EBS(Elastic Block Store)에 대한 정보 또는
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- → 로 이동합니다.
- Ansible Automation Platform을 검색하고 클릭합니다.
채널 업데이트 선택:
- stable-2.x: 자동화 허브 및 자동화 컨트롤러 인스턴스의 배포를 Operator가 설치된 네임스페이스로 제한하는 네임스페이스 범위 Operator를 설치합니다. 이는 대부분의 경우에 적합합니다. stable-2.x 채널은 관리자 권한이 필요하지 않으며 단일 네임스페이스만 모니터링하므로 더 적은 리소스를 활용합니다.
- stable-2.x-cluster 범위: 클러스터의 여러 네임스페이스에 자동화 허브 및 자동화 컨트롤러를 배포하고 클러스터의 모든 네임스페이스에 대한 관리자 권한이 필요합니다.
- 설치 모드, 설치된 네임스페이스 및 승인 전략을 선택합니다.
- 클릭합니다.
설치 프로세스가 시작됩니다. 설치가 완료되면 Ansible Automation Platform Operator가 지정된 네임스페이스에 설치되었음을 알리는 모달이 표시됩니다.
- 를 클릭하여 새로 설치된 Ansible Automation Platform Operator를 확인합니다.
Ansible Automation Platform Operator의 단일 인스턴스만 단일 네임스페이스에 설치할 수 있습니다. 동일한 네임스페이스에 여러 인스턴스를 설치하면 두 Operator 인스턴스에 대한 부적절한 작업이 발생할 수 있습니다.
3장. OpenShift Container Platform CLI에서 Ansible Automation Platform Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
다음 지침을 사용하여 oc 명령을 사용하여 OpenShift Container Platform CLI(명령줄 인터페이스)에서 Red Hat OpenShift Container Platform에 Ansible Automation Platform Operator를 설치합니다.
3.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- operator 설치 권한이 있는 계정을 사용하여 Red Hat OpenShift Container Platform에 액세스할 수 있습니다.
-
OpenShift Container Platform CLI
oc명령이 로컬 시스템에 설치되어 있습니다. 자세한 내용은 Red Hat OpenShift Container Platform 제품 설명서에서 OpenShift CLI 설치를 참조하십시오.
3.2. OpenShift Container Platform CLI를 사용하여 Operator에 네임스페이스 구독 링크 복사링크가 클립보드에 복사되었습니다!
네임스페이스를 Operator에 가입하려면 다음 절차를 사용하십시오.
Ansible Automation Platform Operator의 단일 인스턴스만 단일 네임스페이스에 등록할 수 있습니다. 동일한 네임스페이스에 여러 인스턴스를 구독하면 두 Operator 인스턴스에 대해 잘못된 작업이 발생할 수 있습니다.
프로세스
Operator에 대한 프로젝트를 생성합니다.
oc new-project ansible-automation-platform-
sub.yaml이라는 파일을 생성합니다. 다음 YAML 코드를
sub.yaml파일에 추가합니다.--- apiVersion: v1 kind: Namespace metadata: labels: openshift.io/cluster-monitoring: "true" name: ansible-automation-platform --- apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: ansible-automation-platform-operator namespace: ansible-automation-platform spec: targetNamespaces: - ansible-automation-platform --- apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: ansible-automation-platform namespace: ansible-automation-platform spec: channel: 'stable-2.5' installPlanApproval: Automatic name: ansible-automation-platform-operator source: redhat-operators sourceNamespace: openshift-marketplace --- apiVersion: automationcontroller.ansible.com/v1beta1 kind: AutomationController metadata: name: example namespace: ansible-automation-platform spec: replicas: 1이 파일은 ansible-automation-platform 네임스페이스를
ansible-automation-platformoperator에 서브스크립션하는이라는ansible-automation-platform-platformSubscription오브젝트를 생성합니다.그런 다음
ansible-automation-platform네임스페이스에서example이라는AutomationController오브젝트를 생성합니다.자동화 컨트롤러 이름을
예제에서변경하려면sub.yaml의kind: AutomationController섹션에 있는 name 필드를 편집하고 <automation_controller_name>을 사용하려는 이름으로 교체합니다.apiVersion: automationcontroller.ansible.com/v1beta1 kind: AutomationController metadata: name: <automation_controller_name> namespace: ansible-automation-platformoc apply명령을 실행하여sub.yaml파일에 지정된 오브젝트를 생성합니다.oc apply -f sub.yaml
네임스페이스가 ansible-automation-platform-operator Operator에 성공적으로 가입되었는지 확인하려면 oc get subs 명령을 실행합니다.
$ oc get subs -n ansible-automation-platform
Operator에 네임스페이스를 서브스크립션하는 방법에 대한 자세한 내용은 Red Hat OpenShift Container Platform Operator 가이드 의 CLI를 사용하여 OperatorHub에서 설치를 참조하십시오.
OpenShift Container Platform CLI를 사용하여 생성한 자동화 컨트롤러의 웹 주소 및 암호를 가져올 수 있습니다.
3.3. OpenShift Container Platform CLI에서 플랫폼 게이트웨이 로그인 세부 정보 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
플랫폼 게이트웨이에 로그인하려면 웹 주소와 암호가 필요합니다.
3.3.1. 플랫폼 게이트웨이 웹 주소 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift Container Platform 경로는 외부 클라이언트가 이름으로 연결할 수 있도록 호스트 이름으로 서비스를 노출합니다. 플랫폼 게이트웨이 인스턴스를 만들 때 해당 인스턴스를 위한 경로가 생성되었습니다. 경로는 YAML 파일의 플랫폼 게이트웨이 오브젝트에 할당한 이름을 상속합니다.
다음 명령을 사용하여 경로를 가져옵니다.
oc get routes -n <platform_namespace>
다음 예에서 플랫폼 게이트웨이는 ansible-automation-platform 네임스페이스에서 실행되고 있습니다.
$ oc get routes -n ansible-automation-platform
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
example example-ansible-automation-platform.apps-crc.testing example-service http edge/Redirect None
플랫폼 게이트웨이 인스턴스의 주소는 example-ansible-automation-platform.apps-crc.testing 입니다.
3.3.2. 플랫폼 게이트웨이 암호 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
sub.yaml 의 플랫폼 게이트웨이 인스턴스의 YAML 블록은 이름 및 admin_user 키에 값을 할당합니다. 다음 명령에서 이러한 값을 사용하여 플랫폼 게이트웨이 인스턴스의 암호를 가져옵니다.
oc get secret/<your instance name>-<admin_user>-password -o yaml
admin_user 의 기본값은 admin 입니다. sub.yaml 에서 관리자 사용자 이름을 변경한 경우 명령을 수정합니다.
다음 예제에서는 example 이라는 플랫폼 게이트웨이 오브젝트의 암호를 검색합니다.
oc get secret/example-admin-password -o yaml
플랫폼 게이트웨이 인스턴스의 암호는 출력의 metadata 필드에 나열됩니다.
$ oc get secret/example-admin-password -o yaml
apiVersion: v1
data:
password: ODzLODzLODzLODzLODzLODzLODzLODzLODzLODzLODzL
kind: Secret
metadata:
labels:
app.kubernetes.io/component: aap
app.kubernetes.io/name: example
app.kubernetes.io/operator-version: ""
app.kubernetes.io/part-of: example
name: example-admin-password
namespace: ansible-automation-platform
4장. Red Hat OpenShift Container Platform에서 Red Hat Ansible Automation Platform Operator 구성 링크 복사링크가 클립보드에 복사되었습니다!
Ansible Automation Platform의 플랫폼 게이트웨이를 사용하면 다음 Ansible Automation Platform 구성 요소를 관리하여 단일 사용자 인터페이스를 구성할 수 있습니다.
- 자동화 컨트롤러
- 자동화 허브
- 이벤트 기반 Ansible
- Red Hat Ansible Lightspeed(이 기능은 기본적으로 비활성화되어 있으므로 사용을 선택해야 합니다.)
플랫폼 게이트웨이를 배포하려면 먼저 네임스페이스에 Ansible Automation Platform Operator가 설치되어 있어야 합니다. Ansible Automation Platform Operator를 설치하지 않은 경우 2장. Red Hat OpenShift Container Platform에 Red Hat Ansible Automation Platform Operator 설치 을 참조하십시오.
플랫폼 게이트웨이는 Ansible Automation Platform Operator 버전 2.5에서만 사용할 수 있습니다. Ansible Automation Platform Operator 2.5에서 배포된 모든 구성 요소는 기본적으로 버전 2.5로 설정됩니다.
Ansible Automation Platform Operator 및 일부 또는 모든 Ansible Automation Platform 구성 요소가 설치된 경우 4.3절. “기존 Ansible Automation Platform 구성 요소를 사용하여 플랫폼 게이트웨이 배포” 에서 계속 진행하는 방법을 참조하십시오.
4.1. 플랫폼 게이트웨이에 구성 요소 연결 링크 복사링크가 클립보드에 복사되었습니다!
네임스페이스에 Ansible Automation Platform Operator를 설치한 후 Ansible Automation Platform 인스턴스를 설정할 수 있습니다. 그런 다음 모든 플랫폼 구성 요소를 단일 사용자 인터페이스에 연결합니다.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- Operators(운영자) 로 이동합니다.
- Ansible Automation Platform Operator 배포를 선택합니다.
- 세부 정보 탭을 선택합니다.
- Ansible Automation Platform 타일에서 클릭합니다.
- Create Ansible Automation Platform 페이지에서 이름 필드에 인스턴스의 이름을 입력합니다.
클릭하고 다음을 붙여넣습니다.
spec: controller: disabled: false eda: disabled: false hub: disabled: false storage_type: file file_storage_storage_class: <read-write-many-storage-class> file_storage_size: 10Gi- 을 클릭합니다.
검증
Ansible Automation Platform Operator 배포로 이동하여 올바르게 배포되었는지 확인합니다. Ansible Automation Platform 인스턴스 및 배포된 AutomationController, EDA 및 AutomationHub 인스턴스가 여기에 표시됩니다.
또는 명령행에서 확인할 수 있습니다. oc get route를 실행합니다.
4.2. 플랫폼 게이트웨이 액세스 링크 복사링크가 클립보드에 복사되었습니다!
Ansible Automation Platform 인스턴스를 기본값으로 사용해야 합니다. 이 인스턴스는 자동화 컨트롤러, 자동화 허브 및 이벤트 기반 Ansible 배포를 단일 인터페이스에 연결합니다.
프로세스
Ansible Automation Platform 인스턴스에 액세스하려면 다음을 수행합니다.
- Red Hat OpenShift Container Platform에 로그인합니다.
- → (경로) 로 이동합니다.
- Ansible Automation Platform 위치 아래의 링크를 클릭합니다.
- 이렇게 하면 Ansible Automation Platform 로그인 페이지로 리디렉션됩니다. 사용자 이름 필드에 사용자 이름으로 "admin" 을 입력합니다.
암호의 경우 다음을 수행해야 합니다.
- 이동합니다.
- & 를 클릭하고 암호를 복사합니다.
- 암호를 암호 필드에 붙여넣습니다.
- 클릭합니다.
서브스크립션을 적용합니다.
- 또는 클릭합니다.
- 매니페스트를 업로드하거나 사용자 이름과 암호를 입력합니다.
- 서브스크립션 목록에서 서브스크립션 을 선택합니다.
-
클릭합니다.
이렇게 하면 분석 페이지로 리디렉션됩니다.
- 를 클릭합니다.
- I agree to the terms of the license agreement 확인란을 선택합니다.
- 를 클릭합니다.
이제 플랫폼 게이트웨이 사용자 인터페이스에 액세스할 수 있습니다. Ansible Automation Platform에 액세스할 수 없는 경우 문제 해결 및 디버깅에 대한 도움말은 4.4절. “플랫폼 게이트웨이에 대한 자주 묻는 질문” 에서 참조하십시오.
4.3. 기존 Ansible Automation Platform 구성 요소를 사용하여 플랫폼 게이트웨이 배포 링크 복사링크가 클립보드에 복사되었습니다!
이미 설치한 Ansible Automation Platform의 모든 구성 요소를 새 Ansible Automation Platform 인스턴스에 연결할 수 있습니다.
다음 절차에서는 자동화 컨트롤러가 기존 구성 요소로 되어 자동화 허브 및 이벤트 기반 Ansible을 추가하려는 시나리오를 시뮬레이션합니다.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- Operators(운영자) 로 이동합니다.
- Ansible Automation Platform Operator 배포를 선택합니다.
- 클릭하고 stable-2.5 로 업데이트 채널을 편집합니다.
- 정보를 클릭하고 Ansible Automation Platform 타일에서 클릭합니다.
- Create Ansible Automation Platform 페이지에서 이름 필드에 인스턴스의 이름을 입력합니다.
클릭하고 다음을 복사합니다.
apiVersion: aap.ansible.com/v1alpha1 kind: AnsibleAutomationPlatform metadata: name: example-aap namespace: aap spec: # Platform image_pull_policy: IfNotPresent # Components controller: disabled: false name: existing-controller-name eda: disabled: false hub: disabled: false ## uncomment if using file storage for Content pod storage_type: file file_storage_storage_class: <your-read-write-many-storage-class> file_storage_size: 10Gi ## uncomment if using S3 storage for Content pod # storage_type: S3 # object_storage_s3_secret: example-galaxy-object-storage ## uncomment if using Azure storage for Content pod # storage_type: azure # object_storage_azure_secret: azure-secret-name lightspeed: disabled: true- 새 구성 요소의 경우 이름을 지정하지 않으면 기본 이름이 생성됩니다.
- 을 클릭합니다.
- 새 인스턴스에 액세스하려면 4.2절. “플랫폼 게이트웨이 액세스” 을 참조하십시오.
관리 Postgres Pod가 있는 기존 컨트롤러가 있는 경우 Ansible Automation Platform 리소스를 생성한 후 자동화 컨트롤러 인스턴스에서 원래 Postgres Pod를 계속 사용합니다. 새로 설치하려는 경우 모든 인스턴스에 대해 단일 Postgres 관리 Pod가 있어야 합니다.
4.4. 플랫폼 게이트웨이에 대한 자주 묻는 질문 링크 복사링크가 클립보드에 복사되었습니다!
- Ansible Automation Platform 배포를 삭제하면 Automation Controller에 계속 액세스할 수 있습니까?
- 아니요, 자동화 컨트롤러, 자동화 허브 및 이벤트 기반 Ansible은 배포 내에 중첩되어 있으며도 삭제됩니다.
- 배포에 문제가 발생했지만 무엇을 알 수 있는지, 어떻게 확인할 수 있습니까?
- Operator가 조정되는 동안 명령줄에서 따라갈 수 있습니다. 이 기능은 디버깅에 유용할 수 있습니다. 또는 배포 인스턴스를 클릭하여 배포가 진행되는 동안 업데이트되는 상태 조건을 확인할 수 있습니다.
- 개별 구성 요소 로그를 계속 볼 수 있습니까?
- 문제 해결 시 기본 로그에 대한 Ansible Automation Platform 인스턴스 및 각 개별 구성 요소(EDA, AutomationHub, AutomationController)를 검사해야 합니다.
- 인스턴스의 조건을 어디에서 볼 수 있습니까?
-
상태 조건을 표시하려면 인스턴스를 클릭하고 세부 정보 또는 이벤트 탭에서 확인합니다. 또는 get 명령을 실행할 수 있는 상태 조건을 표시하려면
oc get automationcontroller <instance-name> -o jsonpath=Pipe "| jq" - 마이그레이션을 실시간으로 추적할 수 있습니까?
-
마이그레이션 상태를 추적하거나 마이그레이션에 실패한 이유를 이해하기 위해 실행 중인 마이그레이션 로그를 확인할 수 있습니다. logs 명령 사용:
oc logs fresh-install-controller-migration-4.6.0-jwfm6 -f
5장. Red Hat OpenShift Container Platform 웹 콘솔에서 자동화 컨트롤러 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 지침을 사용하여 Red Hat OpenShift Container Platform에서 자동화 컨트롤러 Operator를 구성하고, 사용자 정의 리소스를 지정하고, 외부 데이터베이스를 사용하여 Ansible Automation Platform을 배포할 수 있습니다.
자동화 컨트롤러 구성은 자동화 컨트롤러 extra_settings를 통해 수행하거나 배포 후 사용자 인터페이스에서 직접 수행할 수 있습니다. 그러나 extra_settings에서 만든 구성이 사용자 인터페이스에서 설정한 설정보다 우선합니다.
자동화 컨트롤러 인스턴스가 제거되면 연결된 PVC가 자동으로 삭제되지 않습니다. 이로 인해 새 배포의 이름이 이전 배포와 동일한 경우 마이그레이션 중 문제가 발생할 수 있습니다. 따라서 동일한 네임스페이스에 새 자동화 컨트롤러 인스턴스를 배포하기 전에 이전 PVC를 수동으로 제거하는 것이 좋습니다. 자세한 내용은 PVC 찾기 및 삭제 를 참조하십시오.
5.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- Operator Hub에 Red Hat Ansible Automation Platform 카탈로그를 설치했습니다.
- 자동화 컨트롤러의 경우 Operator가 필요한 PVC를 동적으로 생성하도록 클러스터에 기본 StorageClass를 구성해야 합니다. 외부 PostgreSQL 데이터베이스가 구성된 경우 필요하지 않습니다.
- Hub의 경우 ReadWriteMany를 지원하는 StorageClass를 클러스터에서 사용할 수 있어야 콘텐츠, redis 및 api Pod에 필요한 PVC를 동적으로 생성할 수 있어야 합니다. 클러스터의 기본 StorageClass가 아닌 경우 AutomationHub 오브젝트를 생성할 때 지정할 수 있습니다.
5.1.1. 컨트롤러 이미지 가져오기 정책 구성 링크 복사링크가 클립보드에 복사되었습니다!
자동화 컨트롤러에서 이미지 가져오기 정책을 구성하려면 다음 절차를 사용하십시오.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- .
- Ansible Automation Platform Operator 배포를 선택합니다.
- 자동화 컨트롤러 탭을 선택합니다.
새 인스턴스의 경우 클릭합니다.
- 기존 인스턴스의 경우 Cryostat 아이콘을 클릭한 다음 를 클릭하여 YAML 보기를 편집할 수 있습니다.
을 클릭합니다. Image Pull Policy 에서 라디오 버튼을 클릭하여 선택합니다.
- Always
- Never
- IfNotPresent
Image Pull Secrets 아래에 옵션을 표시하려면 화살표를 클릭합니다.
- beside Image Pull Secret 을 클릭하고 값을 입력합니다.
웹 컨테이너 리소스 요구 사항 드롭다운 목록 아래의 필드를 표시하려면 화살표를 클릭합니다.
- 제한 및 요청 에서 CPU 코어, 메모리 및 스토리지 값을 입력합니다.
Task 컨테이너 리소스 요구 사항 드롭다운 목록 아래의 필드를 표시하려면 화살표를 클릭합니다.
- 제한 및 요청 에서 CPU 코어, 메모리 및 스토리지 값을 입력합니다.
EE Control Plane 컨테이너 리소스 요구 사항 드롭다운 목록에 필드를 표시하려면 화살표를 클릭합니다.
- 제한 및 요청 에서 CPU 코어, 메모리 및 스토리지 값을 입력합니다.
PostgreSQL init 컨테이너 리소스 요구 사항(관리 서비스를 사용하는 경우) 드롭다운 목록 아래의 필드를 표시하려면 화살표를 클릭합니다.
- 제한 및 요청 에서 CPU 코어, 메모리 및 스토리지 값을 입력합니다.
Redis 컨테이너 리소스 요구 사항 드롭다운 목록에 필드를 표시하려면 화살표를 클릭합니다.
- 제한 및 요청 에서 CPU 코어, 메모리 및 스토리지 값을 입력합니다.
PostgreSQL 컨테이너 리소스 요구 사항(관리 인스턴스 사용 시)* 드롭다운 목록 아래의 필드를 표시하려면 화살표를 클릭합니다.
- 제한 및 요청 에서 CPU 코어, 메모리 및 스토리지 값을 입력합니다.
PostgreSQL 컨테이너 스토리지 요구 사항(관리 인스턴스 사용 시) 드롭다운 목록을 표시하려면 화살표를 클릭합니다.
- 제한 및 요청 에서 CPU 코어, 메모리 및 스토리지 값을 입력합니다.
- Replicas 아래에 인스턴스 복제본 수를 입력합니다.
- 인스턴스 제거 시 사용된 시크릿 제거에서 true 또는 false 를 선택합니다. 기본값은 false입니다.
- 생성 시 데이터가 있는 Preload 인스턴스에서 true 또는 false 를 선택합니다. 기본값은 true입니다.
5.1.2. 컨트롤러 LDAP 보안 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 옵션 중 하나를 통해 자동화 컨트롤러에 대한 LDAP SSL 구성을 구성할 수 있습니다.
- 자동화 컨트롤러 사용자 인터페이스입니다.
- 플랫폼 게이트웨이 사용자 인터페이스입니다. 추가 단계는 액세스 관리 및 인증을 참조하십시오.
- 다음 절차 단계입니다.
프로세스
ldap_cacert_secret이 없는 경우 다음 명령을 사용하여 생성할 수 있습니다.$ oc create secret generic <resourcename>-custom-certs \ --from-file=ldap-ca.crt=<PATH/TO/YOUR/CA/PEM/FILE> \1 - 1
- CA 인증서가 저장된 위치를 가리키도록 이 값을 수정합니다.
이렇게 하면 다음과 같은 시크릿이 생성됩니다.
$ oc get secret/mycerts -o yaml apiVersion: v1 data: ldap-ca.crt: <mysecret>1 kind: Secret metadata: name: mycerts namespace: awx type: Opaque- 1
- 자동화 컨트롤러는
ldap_cacert_secret을 사용할 때 지정된 시크릿에서 data 필드ldap-ca.crt를 찾습니다.
-
LDAP 인증 기관 신뢰 번들 에서 드롭다운 메뉴를 클릭하고
ldap_cacert_secret을 선택합니다. - LDAP 암호 시크릿 에서 드롭다운 메뉴를 클릭하고 시크릿을 선택합니다.
- EE Images Pull Credentials Secret 에서 드롭다운 메뉴를 클릭하고 시크릿을 선택합니다.
- Bundle Cacert Secret 에서 드롭다운 메뉴를 클릭하고 시크릿을 선택합니다.
서비스 유형에서 드롭다운 메뉴를 클릭하고 선택합니다.
- ClusterIP
- LoadBalancer
- NodePort
5.1.3. 자동화 컨트롤러 Operator 경로 옵션 구성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Ansible Automation Platform Operator 설치 양식을 사용하면 고급 구성에서 자동화 컨트롤러 Operator 경로 옵션을 추가로 구성할 수 있습니다.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- Operators(운영자) 로 이동합니다.
- Ansible Automation Platform Operator 배포를 선택합니다.
- 자동화 컨트롤러 탭을 선택합니다.
새 인스턴스의 경우 클릭합니다.
- 기존 인스턴스의 경우 Cryostat 아이콘을 클릭한 다음 를 클릭하여 YAML 보기를 편집할 수 있습니다.
- 을 클릭합니다.
- Ingress 유형에서 드롭다운 메뉴를 클릭하고 경로를 선택합니다.
- 경로 DNS 호스트 에서 경로가 응답하는 공통 호스트 이름을 입력합니다.
- 경로 TLS 종료 메커니즘 에서 드롭다운 메뉴를 클릭하고 Edge 또는 Passthrough 를 선택합니다. 대부분의 경우 에지 를 선택해야 합니다.
- Route TLS 인증 정보 시크릿 에서 드롭다운 메뉴를 클릭하고 목록에서 시크릿을 선택합니다.
- Enable persistence for /var/lib/projects 디렉토리에서 슬라이더를 이동하여 true 또는 false를 선택합니다.
5.1.4. 자동화 컨트롤러 Operator의 수신 유형 구성 링크 복사링크가 클립보드에 복사되었습니다!
Ansible Automation Platform Operator 설치 양식을 사용하면 고급 구성에서 자동화 컨트롤러 Operator 수신을 추가로 구성할 수 있습니다.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- Operators(운영자) 로 이동합니다.
- Ansible Automation Platform Operator 배포를 선택합니다.
- 자동화 컨트롤러 탭을 선택합니다.
새 인스턴스의 경우 클릭합니다.
- 기존 인스턴스의 경우 Cryostat 아이콘을 클릭한 다음 를 클릭하여 YAML 보기를 편집할 수 있습니다.
- 을 클릭합니다.
- Ingress 유형에서 드롭다운 메뉴를 클릭하고 Ingress 를 선택합니다.
- Ingress 주석 에서 수신에 추가할 주석을 입력합니다.
- Ingress TLS 시크릿 에서 드롭다운 메뉴를 클릭하고 목록에서 시크릿을 선택합니다.
자동화 컨트롤러 Operator를 구성한 후 양식 보기 하단에서 을 클릭합니다. Red Hat OpenShift Container Platform에서 Pod를 생성합니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.
→ 로 이동하여 새로 생성된 인스턴스를 찾아 진행 상황을 볼 수 있습니다.
검증
자동화 컨트롤러에서 Ansible Automation Platform Operator 설치에서 제공하는 다음 Operator Pod가 실행 중인지 확인합니다.
| Operator 관리자 컨트롤러 | 자동화 컨트롤러 | 자동화 허브 | 이벤트 기반 Ansible (EDA) |
|---|---|---|---|
| 세 Operator 각각에 대한 Operator 관리자 컨트롤러에는 다음이 포함됩니다.
| 자동화 컨트롤러를 배포한 후 다음 Pod가 추가된 것을 확인할 수 있습니다.
| 자동화 허브를 배포한 후 다음 Pod가 추가된 것을 확인할 수 있습니다.
| EDA를 배포한 후 다음 Pod가 추가된 것을 확인할 수 있습니다.
|
누락된 Pod는 풀 시크릿이 필요함을 나타낼 수 있습니다. 보호 또는 개인 이미지 레지스트리에는 풀 시크릿이 필요합니다. 자세한 내용은 이미지 풀 시크릿 사용을 참조하십시오. oc describe pod <pod-name >을 실행하여 해당 Pod에 ImagePullBackOff 오류가 있는지 확인하여 이 문제를 추가로 진단할 수 있습니다.
5.2. Red Hat Ansible Automation Platform Operator에서 자동화 컨트롤러를 위한 외부 데이터베이스 구성 링크 복사링크가 클립보드에 복사되었습니다!
외부 데이터베이스를 사용하여 Ansible Automation Platform을 배포하려는 사용자의 경우 인스턴스 인증 정보 및 연결 정보를 사용하여 시크릿을 구성한 다음 oc create 명령을 사용하여 클러스터에 적용할 수 있습니다.
기본적으로 Ansible Automation Platform Operator는 Ansible Automation Platform 배포와 동일한 네임스페이스에서 관리형 PostgreSQL Pod를 자동으로 생성하고 구성합니다. Ansible Automation Platform Operator가 자동으로 생성하는 관리형 PostgreSQL Pod 대신 외부 데이터베이스를 사용하여 Ansible Automation Platform을 배포할 수 있습니다.
외부 데이터베이스를 사용하면 리소스를 공유 및 재사용하고 백업, 업그레이드 및 성능 최적화를 수동으로 관리할 수 있습니다.
데이터베이스 이름이 다른 경우 동일한 외부 데이터베이스(PostgreSQL 인스턴스)를 자동화 허브 및 자동화 컨트롤러에 사용할 수 있습니다. 즉, 단일 PostgreSQL 인스턴스 내에 다른 이름으로 여러 데이터베이스를 가질 수 있습니다.
다음 섹션에서는 Ansible Automation Platform Operator에서 자동화 컨트롤러에 대한 외부 데이터베이스를 구성하는 단계를 간략하게 설명합니다.
사전 요구 사항
외부 데이터베이스는 현재 Ansible Automation Platform 릴리스에서 지원하는 버전인 PostgreSQL 데이터베이스여야 합니다.
Ansible Automation Platform 2.5는 PostgreSQL 15를 지원합니다.
프로세스
외부 postgres 인스턴스 자격 증명 및 연결 정보는 시크릿에 저장해야 하며, 그런 다음 자동화 컨트롤러 사양에 설정됩니다.
아래 템플릿에 따라
postgres_configuration_secretYAML 파일을 생성합니다.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: Opaqueoc create명령을 사용하여external-postgres-configuration-secret.yml을 클러스터에 적용합니다.$ oc create -f external-postgres-configuration-secret.ymlAutomationController사용자 정의 리소스 오브젝트를 생성할 때 아래 예에 따라 사양에 보안을 지정합니다.apiVersion: automationcontroller.ansible.com/v1beta1 kind: AutomationController metadata: name: controller-dev spec: postgres_configuration_secret: external-postgres-configuration
5.3. PVC 검색 및 삭제 링크 복사링크가 클립보드에 복사되었습니다!
PVC(영구 볼륨 클레임)는 자동화 허브 및 자동화 컨트롤러 애플리케이션에서 사용하는 데이터를 저장하는 데 사용되는 스토리지 볼륨입니다. 이러한 PVC는 애플리케이션과 독립적이며 애플리케이션이 삭제된 경우에도 유지됩니다. 더 이상 PVC가 필요하지 않거나 다른 위치에서 백업한 경우 수동으로 삭제할 수 있습니다.
프로세스
배포 네임스페이스의 기존 PVC를 나열합니다.
oc get pvc -n <namespace>- 이전 배포 이름 및 PVC 이름을 비교하여 이전 배포와 연결된 PVC를 확인합니다.
이전 PVC를 삭제합니다.
oc delete pvc -n <namespace> <pvc-name>
6장. Red Hat OpenShift Container Platform 웹 콘솔에서 자동화 허브 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 지침을 사용하여 Red Hat OpenShift Container Platform에서 Automation Hub Operator를 구성하고, 사용자 정의 리소스를 지정하고, 외부 데이터베이스를 사용하여 Ansible Automation Platform을 배포할 수 있습니다.
자동화 허브 구성은 자동화 허브 pulp_settings를 통해 수행하거나 배포 후 사용자 인터페이스에서 직접 수행할 수 있습니다. 그러나 pulp_settings에서 만든 구성이 사용자 인터페이스에서 설정한 설정보다 우선합니다. Hub 설정은 Hub 사용자 정의 리소스 사양에 항상 소문자로 설정해야 합니다.
자동화 허브 인스턴스를 제거하면 PVC가 자동으로 삭제되지 않습니다. 이로 인해 새 배포의 이름이 이전 배포와 동일한 경우 마이그레이션 중 문제가 발생할 수 있습니다. 따라서 동일한 네임스페이스에 새 자동화 허브 인스턴스를 배포하기 전에 이전 PVC를 수동으로 제거하는 것이 좋습니다. 자세한 내용은 PVC 찾기 및 삭제 를 참조하십시오.
6.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- Operator Hub에 Ansible Automation Platform Operator가 설치되어 있습니다.
자동화 허브에는 여러 Pod가 컬렉션과 같은 공유 콘텐츠에 액세스할 수 있도록 작업을 위해 ReadWriteMany 파일 기반 스토리지, Azure Blob 스토리지 또는 Amazon S3 호환 스토리지가 필요합니다.
AutomationHub CR에서 오브젝트 스토리지를 구성하는 프로세스는 Amazon S3 및 Azure Blob Storage와 유사합니다.
파일 기반 스토리지를 사용하고 설치 시나리오에 자동화 허브가 포함된 경우 Ansible Automation Platform Operator의 스토리지 옵션이 ReadWriteMany 로 설정되어 있는지 확인합니다. ReadWriteMany 는 기본 스토리지 옵션입니다.
또한 OpenShift Data Foundation은 ReadWriteMany 또는 S3 호환 구현을 제공합니다. 또한 ReadWriteMany 를 지원하도록 NFS 스토리지 구성을 설정할 수 있습니다. 그러나 이로 인해 NFS 서버가 잠재적인 단일 장애 지점으로 도입됩니다.
6.1.1.1. ReadWriteMany 액세스 모드를 사용하여 OCP 스토리지 프로비저닝 링크 복사링크가 클립보드에 복사되었습니다!
Ansible Automation Platform Operator를 성공적으로 설치하려면 처음에 자동화 허브를 위해 스토리지 유형을 프로비저닝 해야 합니다.
프로세스
- 스토리지 + 이동합니다.
- btn: Create PersistentVolume을 클릭합니다.
첫 번째 단계에서 기본
ReadWriteOnce에서ReadWriteMany로accessModes를 업데이트합니다.- 자세한 내용은 프로비저닝 을 참조하여 액세스 모드를 업데이트합니다.
- PVC(영구 볼륨 클레임)를 생성하려면 이 섹션의 추가 단계를 완료합니다.
6.1.1.2. Amazon S3에서 오브젝트 스토리지 구성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 자동화 허브를 위해 Amazon S3(Simple Storage Service)를 지원합니다. AutomationHub CR(사용자 정의 리소스)을 배포할 때 구성하거나 기존 인스턴스에 맞게 구성할 수 있습니다.
사전 요구 사항
- Amazon S3 버킷을 생성하여 오브젝트를 저장합니다.
- S3 버킷의 이름을 확인합니다.
프로세스
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자동화 허브 CR(사용자 정의 리소스)
사양에보안을 추가합니다.spec: object_storage_s3_secret: test-s3-
기존 인스턴스에 이 보안을 적용하는 경우 API Pod를 다시 시작하여 변경 사항을 적용합니다.
<Hub-name>은 허브 인스턴스의 이름입니다.
$ oc -n $HUB_NAMESPACE delete pod -l app.kubernetes.io/name=<hub-name>-api
6.1.1.3. Azure Blob에서 오브젝트 스토리지 구성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 자동화 허브를 위한 Azure Blob Storage를 지원합니다. AutomationHub CR(사용자 정의 리소스)을 배포할 때 구성하거나 기존 인스턴스에 맞게 구성할 수 있습니다.
사전 요구 사항
- 오브젝트를 저장할 Azure Storage Blob 컨테이너를 만듭니다.
- Blob 컨테이너의 이름을 확인합니다.
프로세스
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자동화 허브 CR(사용자 정의 리소스)
사양에보안을 추가합니다.spec: object_storage_azure_secret: test-azure-
기존 인스턴스에 이 보안을 적용하는 경우 API Pod를 다시 시작하여 변경 사항을 적용합니다.
<Hub-name>은 허브 인스턴스의 이름입니다.
$ oc -n $HUB_NAMESPACE delete pod -l app.kubernetes.io/name=<hub-name>-api
6.1.2. 자동화 허브 Operator 경로 옵션 구성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Ansible Automation Platform Operator 설치 양식을 사용하면 고급 구성에서 자동화 허브 Operator 경로 옵션을 추가로 구성할 수 있습니다.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- Operators(운영자) 로 이동합니다.
- Ansible Automation Platform Operator 배포를 선택합니다.
- Automation Hub 탭을 선택합니다.
새 인스턴스의 경우 를 클릭합니다.
- 기존 인스턴스의 경우 Cryostat 아이콘을 클릭한 다음 클릭하여 YAML 보기를 편집할 수 있습니다.
- 을 클릭합니다.
- Ingress 유형에서 드롭다운 메뉴를 클릭하고 경로를 선택합니다.
- 경로 DNS 호스트 에서 경로가 응답하는 공통 호스트 이름을 입력합니다.
- 경로 TLS 종료 메커니즘 에서 드롭다운 메뉴를 클릭하고 Edge 또는 Passthrough 를 선택합니다.
- Route TLS 인증 정보 시크릿 에서 드롭다운 메뉴를 클릭하고 목록에서 시크릿을 선택합니다.
6.1.3. 자동화 허브 Operator의 수신 유형 구성 링크 복사링크가 클립보드에 복사되었습니다!
Ansible Automation Platform Operator 설치 양식을 사용하면 고급 구성에서 자동화 허브 Operator 수신을 추가로 구성할 수 있습니다.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- Operators(운영자) 로 이동합니다.
- Ansible Automation Platform Operator 배포를 선택합니다.
- Automation Hub 탭을 선택합니다.
새 인스턴스의 경우 를 클릭합니다.
- 기존 인스턴스의 경우 Cryostat 아이콘을 클릭한 다음 클릭하여 YAML 보기를 편집할 수 있습니다.
- 을 클릭합니다.
- Ingress 유형에서 드롭다운 메뉴를 클릭하고 Ingress 를 선택합니다.
- Ingress 주석 에서 수신에 추가할 주석을 입력합니다.
- Ingress TLS 시크릿 에서 드롭다운 메뉴를 클릭하고 목록에서 시크릿을 선택합니다.
자동화 허브 Operator를 구성한 후 양식 보기 하단에서 을 클릭합니다. Red Hat OpenShift Container Platform에서 Pod를 생성합니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.
→ 로 이동하여 새로 생성된 인스턴스를 찾아 진행 상황을 볼 수 있습니다.
검증
자동화 허브에서 Ansible Automation Platform Operator 설치에서 제공하는 다음 Operator Pod가 실행 중인지 확인합니다.
| Operator 관리자 컨트롤러 | 자동화 컨트롤러 | 자동화 허브 |
|---|---|---|
| 3개 Operator 각각에 대한 Operator 관리자 컨트롤러는 다음을 포함합니다.
| 자동화 컨트롤러를 배포한 후 이러한 Pod가 추가되는 것을 확인할 수 있습니다.
| 자동화 허브를 배포한 후 다음 Pod가 추가된 것을 확인할 수 있습니다.
|
누락된 Pod는 풀 시크릿이 필요함을 나타낼 수 있습니다. 보호 또는 개인 이미지 레지스트리에는 풀 시크릿이 필요합니다. 자세한 내용은 이미지 풀 시크릿 사용을 참조하십시오. oc describe pod <pod-name >을 실행하여 해당 Pod에 ImagePullBackOff 오류가 있는지 확인하여 이 문제를 추가로 진단할 수 있습니다.
6.2. OpenShift Container Platform의 Ansible 자동화 허브에 대한 LDAP 인증 구성 링크 복사링크가 클립보드에 복사되었습니다!
Hub 인스턴스 구성 파일의 spec 섹션에서 OpenShift Container Platform의 Ansible Automation Platform에 대한 LDAP 인증 설정을 구성합니다.
프로세스
다음 예제를 사용하여 자동화 허브 인스턴스에서 LDAP를 구성합니다. 빈 필드에
''를 입력합니다.spec: pulp_settings: auth_ldap_user_attr_map: email: "mail" first_name: "givenName" last_name: "sn" auth_ldap_group_search_base_dn: 'cn=groups,cn=accounts,dc=example,dc=com' auth_ldap_bind_dn: ' ' auth_ldap_bind_password: ' ' auth_ldap_group_search_filter: (objectClass=posixGroup) auth_ldap_user_search_scope: SUBTREE auth_ldap_server_uri: 'ldap://ldapserver:389' authentication_backend_preset: ldap auth_ldap_mirror_groups: 'True' auth_ldap_user_search_base_dn: 'cn=users,cn=accounts,dc=example,dc=com' auth_ldap_bind_password: 'ldappassword' auth_ldap_user_search_filter: (uid=%(user)s) auth_ldap_group_search_scope: SUBTREE auth_ldap_user_flags_by_group: '@json {"is_superuser": "cn=tower-admin,cn=groups,cn=accounts,dc=example,dc=com"}'
필드를 비워 두지 마십시오. 변수가 없는 필드에 대해 '' 를 입력하여 기본값을 나타냅니다.
6.3. 자동화 허브 경로 찾기 링크 복사링크가 클립보드에 복사되었습니다!
플랫폼 게이트웨이 또는 다음 절차를 통해 자동화 허브에 액세스할 수 있습니다.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- → (경로) 로 이동합니다.
- 위치 에서 자동화 허브 인스턴스의 URL을 클릭합니다.
자동화 허브 사용자 인터페이스가 시작되면 운영자 구성 프로세스 중에 지정된 관리자 자격 증명으로 로그인할 수 있습니다.
구성 중에 관리자 암호를 지정하지 않은 경우 사용자를 위해 자동으로 생성되었습니다. 이 암호를 찾으려면 프로젝트로 이동하여 → 를 선택하고 controller-admin-password를 엽니다. 여기에서 암호를 복사하여 Automation Hub 암호 필드에 붙여넣을 수 있습니다.
6.4. Ansible Automation Platform Operator에서 자동화 허브를 위한 외부 데이터베이스 구성 링크 복사링크가 클립보드에 복사되었습니다!
외부 데이터베이스를 사용하여 Ansible Automation Platform을 배포하려는 사용자의 경우 인스턴스 인증 정보 및 연결 정보를 사용하여 시크릿을 구성한 다음 oc create 명령을 사용하여 클러스터에 적용할 수 있습니다.
기본적으로 Ansible Automation Platform Operator는 Ansible Automation Platform 배포와 동일한 네임스페이스에서 관리형 PostgreSQL Pod를 자동으로 생성하고 구성합니다.
전용 노드를 사용하여 전용 리소스를 확인하거나 백업, 업그레이드 또는 성능 조정을 수동으로 관리하려는 경우 외부 데이터베이스를 대신 사용할 수 있습니다.
데이터베이스 이름이 다른 경우 동일한 외부 데이터베이스(PostgreSQL 인스턴스)를 자동화 허브 및 자동화 컨트롤러에 사용할 수 있습니다. 즉, 단일 PostgreSQL 인스턴스 내에 다른 이름으로 여러 데이터베이스를 가질 수 있습니다.
다음 섹션에서는 Ansible Automation Platform Operator에서 자동화 허브에 대한 외부 데이터베이스를 구성하는 단계를 간략하게 설명합니다.
사전 요구 사항
외부 데이터베이스는 현재 Ansible Automation Platform 릴리스에서 지원하는 버전인 PostgreSQL 데이터베이스여야 합니다.
Ansible Automation Platform 2.5는 PostgreSQL 15를 지원합니다.
프로세스
외부 postgres 인스턴스 자격 증명 및 연결 정보는 시크릿에 저장해야 하며 자동화 허브 사양에 설정됩니다.
아래 템플릿에 따라
postgres_configuration_secretYAML 파일을 생성합니다.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: Opaqueoc create명령을 사용하여external-postgres-configuration-secret.yml을 클러스터에 적용합니다.$ oc create -f external-postgres-configuration-secret.ymlAutomationHub사용자 정의 리소스 오브젝트를 생성할 때 아래 예에 따라 사양에 보안을 지정합니다.apiVersion: automationhub.ansible.com/v1beta1 kind: AutomationHub metadata: name: hub-dev spec: postgres_configuration_secret: external-postgres-configuration
6.4.1. 자동화 허브 PostgreSQL 데이터베이스의 hstore 확장 활성화 링크 복사링크가 클립보드에 복사되었습니다!
Ansible Automation Platform 2.5에 추가된 데이터베이스 마이그레이션 스크립트는 hstore 필드를 사용하여 정보를 저장하므로 자동화 허브 PostgreSQL 데이터베이스에 대한 hstore 확장을 활성화해야 합니다.
이 프로세스는 Ansible Automation Platform 설치 프로그램 및 관리형 PostgreSQL 서버를 사용할 때 자동으로 수행됩니다.
PostgreSQL 데이터베이스가 외부인 경우 자동화 허브를 설치하기 전에 수동으로 hstore 확장을 자동화 허브 PostreSQL 데이터베이스로 활성화해야 합니다.
자동화 허브를 설치하기 전에 hstore 확장 기능을 활성화하지 않으면 데이터베이스 마이그레이션 중에 오류가 발생합니다.
프로세스
PostgreSQL 서버(자동화 허브 데이터베이스)에서 확장을 사용할 수 있는지 확인합니다.
$ psql -d <automation hub database> -c "SELECT * FROM pg_available_extensions WHERE name='hstore'"여기서 <
automation hub database>의 기본값은automationhub입니다.hstore를 사용할 수 있는 출력 예:name | default_version | installed_version |comment ------+-----------------+-------------------+--------------------------------------------------- hstore | 1.7 | | data type for storing sets of (key, value) pairs (1 row)hstore를 사용할 수 없는 출력 예:name | default_version | installed_version | comment ------+-----------------+-------------------+--------- (0 rows)RHEL 기반 서버에서
hstore확장은postgresql-contribRPM 패키지에 포함되어 있으며 PostgreSQL 서버 RPM 패키지를 설치할 때 자동으로 설치되지 않습니다.RPM 패키지를 설치하려면 다음 명령을 사용하십시오.
dnf install postgresql-contrib다음 명령을 사용하여 자동화 허브 데이터베이스에
hstorePostgreSQL 확장을 생성합니다.$ psql -d <automation hub database> -c "CREATE EXTENSION hstore;"결과는 다음과 같습니다.
CREATE EXTENSION다음 출력에서
installed_version필드에는hstore가 활성화되었음을 나타내는hstore확장이 포함되어 있습니다.name | default_version | installed_version | comment -----+-----------------+-------------------+------------------------------------------------------ hstore | 1.7 | 1.7 | data type for storing sets of (key, value) pairs (1 row)
6.5. PVC 검색 및 삭제 링크 복사링크가 클립보드에 복사되었습니다!
PVC(영구 볼륨 클레임)는 자동화 허브 및 자동화 컨트롤러 애플리케이션에서 사용하는 데이터를 저장하는 데 사용되는 스토리지 볼륨입니다. 이러한 PVC는 애플리케이션과 독립적이며 애플리케이션이 삭제된 경우에도 유지됩니다. 더 이상 PVC가 필요하지 않거나 다른 위치에서 백업한 경우 수동으로 삭제할 수 있습니다.
프로세스
배포 네임스페이스의 기존 PVC를 나열합니다.
oc get pvc -n <namespace>- 이전 배포 이름 및 PVC 이름을 비교하여 이전 배포와 연결된 PVC를 확인합니다.
이전 PVC를 삭제합니다.
oc delete pvc -n <namespace> <pvc-name>
6.6. 추가 구성 링크 복사링크가 클립보드에 복사되었습니다!
컬렉션 다운로드 수를 사용하면 컬렉션 사용량을 이해하는 데 도움이 될 수 있습니다. 컬렉션 다운로드 수를 자동화 허브에 추가하려면 다음 구성을 설정합니다.
spec:
pulp_settings:
ansible_collect_download_count: true
ansible_collect_download_count 가 활성화되면 자동화 허브에서 컬렉션의 다운로드 수를 표시합니다.
7장. Ansible Automation Platform Operator에 클러스터형 Redis 배포 링크 복사링크가 클립보드에 복사되었습니다!
Ansible Automation Platform Operator를 통해 Ansible Automation Platform 인스턴스를 생성할 때 독립 실행형 Redis는 기본적으로 할당됩니다. 클러스터형 Redis를 배포하려면 다음 절차를 사용하십시오.
Redis에 대한 자세한 내용은 설치 계획 가이드의 캐싱 및 대기열 시스템을 참조하십시오.
사전 요구 사항
- Ansible Automation Platform Operator 배포가 설치되어 있습니다.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- Operators(운영자) 로 이동합니다.
- Ansible Automation Platform Operator 배포를 선택합니다.
- 세부 정보 탭을 선택합니다.
Ansible Automation Platform 타일에서 클릭합니다.
- 기존 인스턴스의 경우 Cryostat 아이콘을 클릭한 다음 YAML 보기를 편집할 수 있습니다.
- redis_mode 값을 "clustered"로 변경합니다.
- 를 클릭한 다음 클릭합니다.
- 고급 구성 을 확장하려면 클릭합니다.
- Redis Mode 목록에 대해 클러스터를 선택합니다.
- 필요에 따라 나머지 인스턴스를 구성한 다음 를 클릭합니다.
인스턴스는 6개의 Redis 복제본을 기본값으로 사용하는 클러스터 Redis와 함께 배포됩니다.
8장. 자동화 허브와 함께 Red Hat Single Sign-On Operator 사용 링크 복사링크가 클립보드에 복사되었습니다!
프라이빗 자동화 허브는 인증을 위해 Red Hat Single Sign-On을 사용합니다.
Red Hat Single Sign-On Operator는 리소스를 생성하고 관리합니다. 이 Operator를 사용하여 OpenShift에서 Red Hat Single Sign-On 관리를 자동화하는 사용자 지정 리소스를 생성합니다.
- VM( 가상 머신 )에 Ansible Automation Platform을 설치할 때 설치 프로그램은 프라이빗 자동화 허브와 함께 사용할 Red Hat Single Sign-On을 자동으로 설치하고 구성할 수 있습니다.
- Red Hat OpenShift Container Platform에 Ansible Automation Platform을 설치할 때 Single Sign-On을 별도로 설치해야 합니다.
이 장에서는 Red Hat Single Sign-On을 구성하고 OpenShift Container Platform에 Ansible Automation Platform을 설치할 때 프라이빗 자동화 허브와 통합하는 프로세스를 설명합니다.
사전 요구 사항
- Operator 설치 권한이 있는 계정을 사용하여 Red Hat OpenShift Container Platform에 액세스할 수 있습니다.
- Red Hat Ansible Automation Platform Operator가 포함된 카탈로그를 설치했습니다.
- Red Hat Single Sign-On Operator가 설치되어 있습니다. Red Hat Single Sign-On Operator를 설치하려면 Red Hat Single Sign-On 설명서의 사용자 지정 리소스를 사용하여 Red Hat Single Sign-On 설치 절차를 따르십시오.
8.1. Keycloak 인스턴스 생성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Single Sign-On Operator를 설치한 후 Ansible Automation Platform에서 사용할 Keycloak 인스턴스를 생성할 수 있습니다.
여기에서 외부 Postgres를 제공하거나 사용자를 위해 생성됩니다.
프로세스
/ Red Hat OpenShift Container Platform에 로그인합니다. → 로 이동합니다. RH-SSO 프로젝트를 선택합니다. Red Hat Single Sign-On Operator 를 선택합니다. Red Hat Single Sign-On Operator 세부 정보 페이지에서 을 선택합니다. 을 클릭합니다. 클릭합니다.
+ 기본 Keycloak 사용자 정의 리소스는 다음과 같습니다.
+
apiVersion: keycloak.org/v1alpha1
kind: Keycloak
metadata:
name: example-keycloak
labels:
app: sso
namespace: aap
spec:
externalAccess:
enabled: true
instances: 1
+ . 을 클릭합니다.
- 배포가 완료되면 이 인증 정보를 사용하여 관리 콘솔에 로그인할 수 있습니다.
-
네임스페이스의 credentials-<
custom-resource> (example keycloak) 시크릿에서 관리자의 인증 정보를찾을 수 있습니다.
8.2. Ansible Automation Platform의 Keycloak 영역 생성 링크 복사링크가 클립보드에 복사되었습니다!
사용자, 자격 증명, 역할 및 그룹 집합을 관리할 영역을 생성합니다. 사용자는 영역에 속하고 로그인합니다. 영역은 서로 분리되어 있으며 제어하는 사용자만 관리하고 인증할 수 있습니다.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- → .
- Red Hat Single Sign-On Operator 프로젝트를 선택합니다.
- Keycloak Cryostat 탭 을 선택하고 .
Keycloak Cryostat 양식 에서 선택합니다. 다음과 같이 YAML 파일을 편집합니다.
kind: KeycloakRealm apiVersion: keycloak.org/v1alpha1 metadata: name: ansible-automation-platform-keycloakrealm namespace: rh-sso labels: app: sso realm: ansible-automation-platform spec: realm: id: ansible-automation-platform realm: ansible-automation-platform enabled: true displayName: Ansible Automation Platform instanceSelector: matchLabels: app: ssoExpand 필드
description
metadata.name구성 리소스(CR)의 이름에 대한 메타데이터의 고유 값을 설정합니다.
metadata.namespace구성 리소스(CR)의 이름에 대한 메타데이터의 고유 값을 설정합니다.
metadata.labels.app레이블을 고유한 값으로 설정합니다. 클라이언트 CR을 생성할 때 사용됩니다.
metadata.labels.realm레이블을 고유한 값으로 설정합니다. 클라이언트 CR을 생성할 때 사용됩니다.
spec.realm.id영역 이름과 ID를 설정합니다. 이 둘은 동일해야 합니다.
spec.realm.realm영역 이름과 ID를 설정합니다. 이 둘은 동일해야 합니다.
spec.realm.displayname표시할 이름을 설정합니다.
- 을 클릭하고 프로세스가 완료될 때까지 기다립니다.
8.3. Keycloak 클라이언트 생성 링크 복사링크가 클립보드에 복사되었습니다!
Keycloak 클라이언트는 Red Hat Single Sign-On을 사용하여 허브 사용자를 인증합니다. 사용자가 요청을 인증하면 Keycloak 클라이언트를 통과합니다. Single Sign-On에서 OAuth 토큰을 검증하거나 발행할 때 클라이언트는 자동화 허브에 대한 응답을 제공하고 사용자가 로그인할 수 있습니다.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- → .
- Red Hat Single Sign-On Operator 프로젝트를 선택합니다.
- Keycloak 클라이언트 탭을 선택하고 을 클릭합니다.
- Keycloak Cryostat 양식에서 선택합니다.
기본 YAML 파일을 다음으로 바꿉니다.
kind: KeycloakClient apiVersion: keycloak.org/v1alpha1 metadata: name: automation-hub-client-secret labels: app: sso realm: ansible-automation-platform namespace: rh-sso spec: realmSelector: matchLabels: app: sso realm: ansible-automation-platform client: name: Automation Hub clientId: automation-hub secret: <client-secret>1 clientAuthenticatorType: client-secret description: Client for automation hub attributes: user.info.response.signature.alg: RS256 request.object.signature.alg: RS256 directAccessGrantsEnabled: true publicClient: true protocol: openid-connect standardFlowEnabled: true protocolMappers: - config: access.token.claim: "true" claim.name: "family_name" id.token.claim: "true" jsonType.label: String user.attribute: lastName userinfo.token.claim: "true" consentRequired: false name: family name protocol: openid-connect protocolMapper: oidc-usermodel-property-mapper - config: userinfo.token.claim: "true" user.attribute: email id.token.claim: "true" access.token.claim: "true" claim.name: email jsonType.label: String name: email protocol: openid-connect protocolMapper: oidc-usermodel-property-mapper consentRequired: false - config: multivalued: "true" access.token.claim: "true" claim.name: "resource_access.${client_id}.roles" jsonType.label: String name: client roles protocol: openid-connect protocolMapper: oidc-usermodel-client-role-mapper consentRequired: false - config: userinfo.token.claim: "true" user.attribute: firstName id.token.claim: "true" access.token.claim: "true" claim.name: given_name jsonType.label: String name: given name protocol: openid-connect protocolMapper: oidc-usermodel-property-mapper consentRequired: false - config: id.token.claim: "true" access.token.claim: "true" userinfo.token.claim: "true" name: full name protocol: openid-connect protocolMapper: oidc-full-name-mapper consentRequired: false - config: userinfo.token.claim: "true" user.attribute: username id.token.claim: "true" access.token.claim: "true" claim.name: preferred_username jsonType.label: String name: <username> protocol: openid-connect protocolMapper: oidc-usermodel-property-mapper consentRequired: false - config: access.token.claim: "true" claim.name: "group" full.path: "true" id.token.claim: "true" userinfo.token.claim: "true" consentRequired: false name: group protocol: openid-connect protocolMapper: oidc-group-membership-mapper - config: multivalued: 'true' id.token.claim: 'true' access.token.claim: 'true' userinfo.token.claim: 'true' usermodel.clientRoleMapping.clientId: 'automation-hub' claim.name: client_roles jsonType.label: String name: client_roles protocolMapper: oidc-usermodel-client-role-mapper protocol: openid-connect - config: id.token.claim: "true" access.token.claim: "true" included.client.audience: 'automation-hub' protocol: openid-connect name: audience mapper protocolMapper: oidc-audience-mapper roles: - name: "hubadmin" description: "An administrator role for automation hub"- 1
- 이 값을 고유한 값으로 바꿉니다.
- 을 클릭하고 프로세스가 완료될 때까지 기다립니다.
자동화 허브를 배포한 후 Red Hat Single Sign-On 클라이언트 업데이트에 설명된 대로 "Valid Redirect URI" 및 "Web Origins"로 클라이언트를 업데이트해야 합니다. 또한 클라이언트는 토큰 매퍼를 사전 구성하지만 인증 공급자가 Red Hat SSO에 그룹 데이터를 제공하지 않는 경우 해당 정보가 전달되는 방법을 반영하도록 그룹 매핑을 업데이트해야 합니다. 일반적으로 사용자 특성에 의해 발생합니다.
8.4. Keycloak 사용자 생성 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 Super Administration 권한으로 자동화 허브에 로그인할 수 있는 hubadmin 역할을 사용하여 Keycloak 사용자를 생성합니다.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- → .
- Red Hat Single Sign-On Operator 프로젝트를 선택합니다.
- Keycloak Cryostat 탭 을 선택하고 을 클릭합니다.
- Keycloak 사용자 양식에서 선택합니다.
기본 YAML 파일을 다음으로 바꿉니다.
apiVersion: keycloak.org/v1alpha1 kind: KeycloakUser metadata: name: hubadmin-user labels: app: sso realm: ansible-automation-platform namespace: rh-sso spec: realmSelector: matchLabels: app: sso realm: ansible-automation-platform user: username: hub_admin firstName: Hub lastName: Admin email: hub_admin@example.com enabled: true emailVerified: false credentials: - type: password value: <ch8ngeme> clientRoles: automation-hub: - hubadmin- 을 클릭하고 프로세스가 완료될 때까지 기다립니다.
사용자가 생성되면 Operator는 다음 이름 지정 패턴을 사용하여 사용자 이름과 암호가 모두 포함된 보안을 생성합니다. credentials -<realm name>-<username>-<namespace > . 이 예에서 인증 정보는 credentials -ansible-automation-platform-hub-admin-rh-sso 라고 합니다. 사용자가 생성되면 Operator는 사용자 암호를 업데이트하지 않습니다. 암호 변경 사항은 시크릿에 반영되지 않습니다.
8.5. Ansible Automation Platform Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- → 로 이동합니다.
- Ansible Automation Platform Operator를 검색합니다.
- Ansible Automation Platform Operator 프로젝트를 선택합니다.
- Operator 타일을 클릭합니다.
- 클릭합니다.
Operator를 설치할 프로젝트를 선택합니다. Operator 권장 네임스페이스 이름을 사용하는 것이 좋습니다.
- 권장 항목이 아닌 다른 프로젝트에 Operator를 설치하려면 드롭다운 메뉴에서 Create Project 를 선택합니다.
- 프로젝트 이름을 입력합니다.
- 을 클릭합니다.
- 클릭합니다.
- Operator가 설치되면 클릭합니다.
8.6. Red Hat Single Sign-On 연결 시크릿 생성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Single Sign-On에 대한 연결 시크릿을 생성하려면 다음 절차를 사용하십시오.
프로세스
-
https://<sso_host>/auth/realms/ansible-automation-platform로 이동합니다. -
public_key값을 복사합니다. - OpenShift 웹 UI에서 → 로 이동합니다.
- ansible-automation-platform 프로젝트를 선택합니다.
- 클릭하고 선택합니다.
다음 YAML을 편집하여 보안을 생성합니다.
apiVersion: v1 kind: Secret metadata: name: automation-hub-sso1 namespace: ansible-automation-platform type: Opaque stringData: keycloak_host: "keycloak-rh-sso.apps-crc.testing" keycloak_port: "443" keycloak_protocol: "https" keycloak_realm: "ansible-automation-platform" keycloak_admin_role: "hubadmin" social_auth_keycloak_key: "automation-hub" social_auth_keycloak_secret: "client-secret"2 social_auth_keycloak_public_key: >-3 - 1
- 이 이름은 자동화 허브 인스턴스를 생성할 때 다음 단계에서 사용됩니다.
- 2
- 자동화 허브용 Keycloak 클라이언트를 생성할 때 보안이 변경된 경우 이 값을 일치하도록 변경해야 합니다.
- 3
- Ansible Automation Platform Operator 설치에서 복사한
public_key값을 입력합니다.
- 을 클릭하고 프로세스가 완료될 때까지 기다립니다.
8.7. Ansible Automation Platform Operator를 사용하여 자동화 허브 설치 링크 복사링크가 클립보드에 복사되었습니다!
Ansible Automation Platform Operator를 사용하여 자동화 허브를 설치하려면 다음 절차를 사용하십시오.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- → .
- Ansible Automation Platform Operator 배포를 선택합니다.
- 자동화 허브 탭을 선택합니다.
- 클릭합니다.
선택합니다. YAML은 다음과 유사해야 합니다.
apiVersion: automationhub.ansible.com/v1beta1 kind: AutomationHub metadata: name: private-ah1 namespace: aap spec: sso_secret: automation-hub-sso2 pulp_settings: verify_ssl: false route_tls_termination_mechanism: Edge ingress_type: Route loadbalancer_port: 80 file_storage_size: 100Gi image_pull_policy: IfNotPresent replicas: 13 web_replicas: N task_replicas: N file_storage_access_mode: ReadWriteMany content: log_level: INFO replicas: 2 postgres_storage_requirements: limits: storage: 50Gi requests: storage: 8Gi api: log_level: INFO replicas: 1 postgres_resource_requirements: limits: cpu: 1000m memory: 8Gi requests: cpu: 500m memory: 2Gi loadbalancer_protocol: http resource_manager: replicas: 1 worker: replicas: 2- 1
- metadata.name을 인스턴스에 사용할 이름으로 설정합니다.
- 2
- spec.sso_secret을 보안 생성에서 생성된 보안 이름으로 설정하여 Red Hat Single Sign On 연결 세부 정보를 유지합니다.
- 3
web_replicas또는task_replicas를 각각 사용하여 각 배포에 대해 복제본을 확장 또는 축소합니다. 여기서 N은 생성할 복제본 수를 나타냅니다. 또는복제본을 사용하여 두 배포에서 모든 Pod를 확장할 수 있습니다. 자세한 내용은 웹 및 작업 Pod 스케일링을 참조하십시오.
참고이 YAML은 SSL 확인을 끕니다(
ssl_verify: false). OpenShift에 자체 서명된 인증서를 사용하지 않는 경우 이 설정을 제거할 수 있습니다.- 을 클릭하고 프로세스가 완료될 때까지 기다립니다.
8.8. 자동화 허브 경로 확인 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차를 사용하여 허브 경로를 확인합니다.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- → (경로) 로 이동합니다.
- 설치에 사용한 프로젝트를 선택합니다.
-
private-ah-web-svc서비스의 위치를 복사합니다. 자동화 허브 인스턴스를 생성할 때 다른 이름을 사용한 경우 서비스 이름이 다릅니다. 나중에 Red Hat Single Sign-On 클라이언트를 업데이트하는 데 사용됩니다.
8.9. Red Hat Single Sign-On 클라이언트 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
자동화 허브를 설치하고 인스턴스의 URL을 확인한 후 Red Hat Single Sign-On을 업데이트하여 Valid Redirect URI 및 Web Origins 설정을 설정해야 합니다.
프로세스
- Red Hat OpenShift Container Platform에 로그인합니다.
- → .
- RH-SSO 프로젝트를 선택합니다.
- 를 클릭합니다.
- .
- automation-hub-client-secret 클라이언트를 클릭합니다.
- 을 선택합니다.
Client YAML을 업데이트하여 Valid Redirect URI 및 Web Origins 설정을 추가합니다.
redirectUris: - 'https://private-ah-ansible-automation-platform.apps-crc.testing/*' webOrigins: - 'https://private-ah-ansible-automation-platform.apps-crc.testing'Expand 필드
description
redirectURIs이는 Automation Hub 경로 결정에서 결정된 위치입니다.
redirectUris설정 끝에 /*를 추가해야 합니다.webOrigins이는 Automation Hub 경로 결정에서 결정된 위치입니다.
참고이러한 설정을 입력할 때 들여쓰기가 올바른지 확인합니다.
- 을 클릭합니다.
연결을 확인하려면 다음을 수행합니다.
- 자동화 허브 경로로 이동합니다.
-
hub_admin사용자 자격 증명을 입력하고 로그인합니다. - Red Hat Single Sign-On은 인증을 처리하고 자동화 허브로 다시 리디렉션합니다.
8.10. 추가 리소스 링크 복사링크가 클립보드에 복사되었습니다!
- OpenShift Container Platform에서 Operator를 실행하는 방법에 대한 자세한 내용은 OpenShift Container Platform 제품 설명서의 OpenShift Container Platform에서 Operator 작업을 참조하십시오.
9장. Ansible Automation Platform Operator에 실행 노드 추가 링크 복사링크가 클립보드에 복사되었습니다!
설치 번들을 다운로드하고 설치하여 실행 노드를 사용하여 Ansible Automation Platform Operator를 활성화할 수 있습니다.
사전 요구 사항
- 자동화 컨트롤러 인스턴스입니다.
- 수신기 컬렉션 패키지가 설치되어 있습니다.
-
AAP 리포지토리
ansible-automation-platform-2.4-for-rhel-{RHEL-RELEASE-NUMBER}-x86_64-rpms가 활성화되어 있습니다.
프로세스
- Red Hat Ansible Automation Platform에 로그인합니다.
- 탐색 패널에서 → 선택합니다.
- 를 클릭합니다.
- 실행 노드 도메인 이름 또는 IP를 호스트 이름 필드에 입력합니다.
- 선택 사항: Listener 포트 필드에 포트 번호를 입력합니다.
- 을 클릭합니다.
-
번들 설치 옆에 있는 다운로드 아이콘
을 클릭합니다. 이렇게 하면 다운로드가 시작되고, 파일을 저장하는 위치를 기록해 둡니다.
gz 파일을 압축을 풉니다.
참고install_receptor.yml플레이북을 실행하려면 Ansible Galaxy:Ansible-galaxy 컬렉션 install -r requirements.yml에서 수신기 컬렉션을 설치해야 합니다.사용자 이름 및 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- 터미널을 열고 플레이북을 저장한 디렉터리로 이동합니다.
번들 실행을 설치하려면 다음을 수행합니다.
ansible-playbook install_receptor.yml -i inventory.yml- 설치가 완료되면 생성한 인스턴스에 대한 플레이북을 다운로드하여 다시 실행하여 실행 노드를 업그레이드할 수 있습니다.
검증
수신기 서비스 상태를 확인하려면 다음 명령을 실행합니다.
sudo systemctl status receptor.service
서비스가 활성(실행 중) 상태인지 확인합니다.
새 노드에서 플레이북이 올바르게 실행되는지 확인하려면 다음 명령을 실행합니다.
watch podman ps
추가 리소스
- 인스턴스 그룹 관리에 대한 자세한 내용은 자동화 컨트롤러 사용자 가이드의 인스턴스 그룹 관리 섹션을 참조하십시오.
10장. Ansible Automation Platform Resource Operator 링크 복사링크가 클립보드에 복사되었습니다!
10.1. 리소스 Operator 개요 링크 복사링크가 클립보드에 복사되었습니다!
리소스 Operator는 플랫폼 게이트웨이 배포를 생성한 후 배포할 수 있는 CR(사용자 정의 리소스)입니다. Resource Operator를 사용하면 YAML 파일을 사용하여 프로젝트, 작업 템플릿 및 인벤토리를 정의할 수 있습니다. 그런 다음 자동화 컨트롤러에서 이러한 리소스를 생성하는 데 이러한 YAML 파일을 사용합니다. 양식 보기를 통해 YAML 코드의 키와 값을 입력하라는 메시지를 표시하는 YAML을 생성할 수 있습니다. 또는 YAML을 직접 사용하려면 YAML 보기를 선택할 수 있습니다.
현재 Resource Operator에서 제공하는 두 가지 사용자 정의 리소스가 있습니다.
- AnsibleJob: Kubernetes 시크릿(자동화 컨트롤러 호스트 URL, 토큰)에 지정된 자동화 컨트롤러 인스턴스에서 작업을 시작합니다.
- jobtemplate: 지정된 자동화 컨트롤러 인스턴스에서 작업 템플릿을 생성합니다.
10.2. Resource Operator 사용 링크 복사링크가 클립보드에 복사되었습니다!
Resource Operator 자체는 사용자가 오브젝트를 생성할 때까지 아무 작업도 수행하지 않습니다. 사용자가 AutomationControllerProject 또는 AnsibleJob 리소스를 생성하는 즉시 Resource Operator가 해당 오브젝트 처리를 시작합니다.
사전 요구 사항
- 선택한 Kubernetes 기반 클러스터를 설치합니다.
-
automation-controller-operator를 사용하여 자동화 컨트롤러를 배포합니다.
클러스터에 automation-controller-resource-operator 를 설치한 후 자동화 컨트롤러 인스턴스에 대한 연결 정보를 사용하여 Kubernetes(k8s) 시크릿을 생성해야 합니다. 그런 다음 Resource Operator를 사용하여 k8s 리소스를 생성하여 자동화 컨트롤러 인스턴스를 관리할 수 있습니다.
10.3. Resource Operator를 플랫폼 게이트웨이에 연결 링크 복사링크가 클립보드에 복사되었습니다!
플랫폼 게이트웨이를 사용하여 Resource Operator를 연결하려면 자동화 컨트롤러 인스턴스에 대한 연결 정보로 k8s 시크릿을 생성해야 합니다.
API 또는 UI를 통해서만 자신의 사용자에 대한 OAuth 2 토큰을 생성할 수 있습니다. 즉, 사용자 프로필에서 토큰만 구성하거나 볼 수 있습니다.
프로세스
플랫폼 게이트웨이 UI에서 사용자에 대한 OAuth2 토큰을 생성하려면 다음을 수행합니다.
- Red Hat OpenShift Container Platform에 로그인합니다.
- 탐색 패널에서 → 를 선택합니다.
- 토큰을 생성할 사용자 이름을 선택합니다.
- → 선택
- 클릭합니다.
- 애플리케이션을 비워 둘 수 있습니다. 설명을 추가하고 범위에 대해 읽기 또는 쓰기를 선택합니다.
토큰을 생성할 때 유효한 사용자를 제공해야 합니다. 그러지 않으면 사용자를 지정하지 않거나 존재하지 않는 사용자 이름을 제공하여 명령을 실행하려고 했다는 오류 메시지가 표시됩니다.
10.4. Resource Operator에 대한 자동화 컨트롤러 연결 시크릿 생성 링크 복사링크가 클립보드에 복사되었습니다!
Resource Operator에서 연결 정보를 사용할 수 있도록 하려면 토큰 및 호스트 값을 사용하여 k8s 시크릿을 생성합니다.
프로세스
다음은 연결 보안에 대한 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/- 호스트 및 토큰 값으로 파일을 편집합니다.
-
kubectl create명령을 실행하여 클러스터에 적용합니다.
kubectl create -f controller-connection-secret.yml
10.5. AnsibleJob 생성 링크 복사링크가 클립보드에 복사되었습니다!
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 job_template_name: Demo Job Template작업에 사용할 수 있도록 인벤토리, 추가 변수, 시간 등의 기능을 구성합니다.
spec: connection_secret: controller-access job_template_name: Demo Job Template inventory: Demo Inventory # Inventory prompt on launch needs to be enabled runner_image: quay.io/ansible/controller-resource-runner runner_version: latest job_ttl: 100 extra_vars: # Extra variables prompt on launch needs to be enabled test_var: test job_tags: "provision,install,configuration" # Specify tags to run skip_tags: "configuration,restart" # Skip tasks with a given tag참고인벤토리 및 추가 변수를 구성하는 경우 시작 시 프롬프트를 활성화해야 합니다. 자동화 컨트롤러 UI에서 시작 시 프롬프트 를 활성화하려면 → 페이지에서 템플릿을 선택하고 인벤토리 및 변수 섹션 옆에 있는 시작 시 프롬프트 확인란을 선택합니다.
job_template_name대신workflow_template_name을 지정하여 AnsibleJob 오브젝트로 워크플로우 작업 템플릿을 시작합니다.apiVersion: tower.ansible.com/v1alpha1 kind: AnsibleJob metadata: generateName: demo-job-1 # generate a unique suffix per 'kubectl create' spec: connection_secret: controller-access workflow_template_name: Demo Workflow Template
10.6. JobTemplate 생성 링크 복사링크가 클립보드에 복사되었습니다!
JobTemplate 리소스를 생성하여 자동화 컨트롤러에서 작업 템플릿을 생성합니다.
apiVersion: tower.ansible.com/v1alpha1 kind: JobTemplate metadata: name: jobtemplate-4 spec: connection_secret: controller-access job_template_name: ExampleJobTemplate4 job_template_project: Demo Project job_template_playbook: hello_world.yml job_template_inventory: Demo Inventory