3.3. 설치 시나리오 기반 인벤토리 파일 예제
Red Hat은 Ansible Automation Platform에 대한 여러 설치 시나리오를 지원합니다. 예제 파일을 기반으로 사용하여 고유한 인벤토리 파일을 개발하거나 선호하는 설치 시나리오에 가장 가까운 예제를 사용할 수 있습니다.
3.3.1. 설치 시나리오에 따른 인벤토리 파일 권장 사항 링크 복사링크가 클립보드에 복사되었습니다!
Ansible Automation Platform에 대한 설치 방법을 선택하기 전에 다음 권장 사항을 검토하십시오. 이러한 권장 사항에 대해 숙지하면 설치 프로세스가 간소화됩니다.
호스트에 연결할 수 있는 IP 주소 또는 FQDN(정규화된 도메인 이름)을 제공하여 사용자가 다른 노드에서 자동화 허브에서 콘텐츠를 동기화하고 설치할 수 있도록 합니다.
FQDN은 올바르게 처리되지 않으므로
-또는_기호를 포함하지 않아야 합니다.localhost를 사용하지 마십시오.-
admin은 Ansible Automation Platform에 처음 로그인하는 기본 사용자 ID이며 인벤토리 파일에서 변경할 수 없습니다. -
pg_password에 대한 특수 문자 사용은 제한됩니다.!,#,0및@문자가 지원됩니다. 다른 특수 문자를 사용하면 설정이 실패할 수 있습니다. -
registry_username및registry_password에 Red Hat 레지스트리 서비스 계정 자격 증명을 입력하여 Red Hat 컨테이너 레지스트리에 연결합니다. -
인벤토리 파일 변수
registry_username및registry_password는 번들 이외의 설치 프로그램을 사용하는 경우에만 필요합니다.
3.3.1.1. 외부(installer 관리) 데이터베이스가 있는 단일 플랫폼 게이트웨이 및 자동화 컨트롤러 링크 복사링크가 클립보드에 복사되었습니다!
이 예제를 사용하여 인벤토리 파일에서 외부(installer managed) 데이터베이스를 사용하여 플랫폼 게이트웨이 및 자동화 컨트롤러의 단일 인스턴스를 배포하는 데 필요한 사항을 확인하십시오.
3.3.1.2. 외부(installer managed) 데이터베이스가 있는 단일 플랫폼 게이트웨이, 자동화 컨트롤러 및 자동화 허브 링크 복사링크가 클립보드에 복사되었습니다!
이 예제를 사용하여 인벤토리 파일을 채우고 플랫폼 게이트웨이, 자동화 컨트롤러 및 자동화 허브의 단일 인스턴스를 외부(installer managed) 데이터베이스로 배포합니다.
이 예제를 사용하여 인벤토리 파일을 채우고 플랫폼 게이트웨이, 자동화 컨트롤러, 자동화 허브 및 이벤트 기반 Ansible 컨트롤러의 단일 인스턴스를 외부(installer 관리) 데이터베이스로 배포합니다.
- 이 시나리오에는 이벤트 기반 Ansible 컨트롤러를 성공적으로 배포하려면 최소 자동화 컨트롤러 2.4가 필요합니다.
- 이벤트 기반 Ansible 컨트롤러는 별도의 서버에 설치해야 하며 자동화 허브 및 자동화 컨트롤러와 동일한 호스트에 설치할 수 없습니다.
- 이벤트 기반 Ansible 룰북이 표준 조건에서 활성화되면 약 250MB의 메모리를 사용합니다. 그러나 실제 메모리 사용은 규칙의 복잡성과 처리된 이벤트의 볼륨 및 크기에 따라 크게 다를 수 있습니다. 많은 수의 이벤트가 예상되거나 룰북 복잡성이 높은 시나리오에서는 스테이징 환경에서 리소스 사용을 사전 평가하십시오. 이렇게 하면 최대 활성화 수가 리소스 용량을 기반으로 합니다.
추가 리소스
이러한 인벤토리 변수에 대한 자세한 내용은 Red Hat Ansible Automation Platform 설치 가이드의 Ansible 자동화 허브 변수를 참조하십시오.
3.3.1.4. 고가용성 자동화 허브 링크 복사링크가 클립보드에 복사되었습니다!
클러스터형 노드, 데이터베이스 호스트 및 엔터프라이즈급 자동화를 위한 로드 밸런싱을 사용하여 고가용성 자동화 허브를 배포하도록 인벤토리 파일을 구성합니다.
다음 예제를 사용하여 인벤토리 파일을 채우고 고가용성 자동화 허브를 설치합니다. 이 인벤토리 파일에는 클러스터형 설정이 포함된 고가용성 자동화 허브가 포함되어 있습니다.
SELinux에서 자동화 허브의 고가용성 배포를 사용하도록 HA 배포를 추가로 구성할 수 있습니다.
데이터베이스 호스트 IP 지정
-
automation_pg_host및automation_pg_port인벤토리 변수를 사용하여 데이터베이스 호스트의 IP 주소를 지정합니다. 예를 들면 다음과 같습니다.
automationhub_pg_host='192.0.2.10' automationhub_pg_port=5432
automationhub_pg_host='192.0.2.10'
automationhub_pg_port=5432
-
또한
automationhub_pg_host인벤토리 변수의 값을 사용하여 [database] 섹션에 데이터베이스 호스트의 IP 주소를 지정합니다.
[database] 192.0.2.10
[database]
192.0.2.10
클러스터형 설정의 모든 인스턴스 나열
-
클러스터형 설정을 설치하는 경우
[automationhub]섹션의localhost ansible_connection=local을 모든 인스턴스의 호스트 이름 또는 IP로 바꿉니다. 예를 들면 다음과 같습니다.
[automationhub] automationhub1.testing.ansible.com ansible_user=cloud-user automationhub2.testing.ansible.com ansible_user=cloud-user automationhub3.testing.ansible.com ansible_user=cloud-user
[automationhub]
automationhub1.testing.ansible.com ansible_user=cloud-user
automationhub2.testing.ansible.com ansible_user=cloud-user
automationhub3.testing.ansible.com ansible_user=cloud-user
다음 단계
각 프라이빗 자동화 허브 서버의 /etc/pulp/settings.py 지시문이 있는지 확인합니다.
USE_X_FORWARDED_PORT = True USE_X_FORWARDED_HOST = True
USE_X_FORWARDED_PORT = True
USE_X_FORWARDED_HOST = True
로드 밸런서를 사용하는 경우 로드 밸런서를 가리키도록 Automation gateway_main_url 을 구성합니다. Automation gateway_main_url 을 지정하지 않으면 [automationgateway] 그룹의 첫 번째 노드가 기본값으로 사용됩니다.
3.3.1.5. SELinux에서 Automation Hub의 HA(고가용성) 배포 활성화 링크 복사링크가 클립보드에 복사되었습니다!
SELinux에서 자동화 허브의 고가용성 배포를 활성화하도록 인벤토리 파일을 구성할 수 있습니다. /var/lib/pulp 및 /var/lib/pulp /pulpcore_static 에 대해 두 개의 마운트 지점을 생성한 다음 각 마운트 지점에 적절한 SELinux 컨텍스트를 할당해야 합니다.
/var/lib/pulp pulpcore_static의 컨텍스트를 추가하고 /var/lib/pulp.에 대한 컨텍스트를 추가하기 전에 Ansible Automation Platform 설치 프로그램을 실행해야 합니다.
사전 요구 사항
서버에 NFS 내보내기를 이미 구성했습니다.
참고NFS 공유는 외부 서버에서 호스팅되며 고가용성 자동화 허브 배포의 일부가 아닙니다.
프로세스
/var/lib/pulp에 마운트 지점을 만듭니다.mkdir /var/lib/pulp/
$ mkdir /var/lib/pulp/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 텍스트 편집기를 사용하여
/etc/fstab를 열고 다음 값을 추가합니다.srv_rhel8:/data /var/lib/pulp nfs defaults,_netdev,nosharecache,context="system_u:object_r:var_lib_t:s0" 0 0 srv_rhel8:/data/pulpcore_static /var/lib/pulp/pulpcore_static nfs defaults,_netdev,nosharecache,context="system_u:object_r:httpd_sys_content_rw_t:s0" 0 0
srv_rhel8:/data /var/lib/pulp nfs defaults,_netdev,nosharecache,context="system_u:object_r:var_lib_t:s0" 0 0 srv_rhel8:/data/pulpcore_static /var/lib/pulp/pulpcore_static nfs defaults,_netdev,nosharecache,context="system_u:object_r:httpd_sys_content_rw_t:s0" 0 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다시 로드 systemd 관리자 구성 명령을 실행합니다.
systemctl daemon-reload
$ systemctl daemon-reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow /var/lib/pulp:에 대한 마운트 명령을 실행하십시오.mount /var/lib/pulp
$ mount /var/lib/pulpCopy to Clipboard Copied! Toggle word wrap Toggle overflow /var/lib/pulp/pulpcore_static에 마운트 지점을 만듭니다.mkdir /var/lib/pulp/pulpcore_static
$ mkdir /var/lib/pulp/pulpcore_staticCopy to Clipboard Copied! Toggle word wrap Toggle overflow mount 명령을 실행합니다.
mount -a
$ mount -aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 마운트 지점이 설정된 경우 Ansible Automation Platform 설치 프로그램을 실행합니다.
setup.sh -- -b --become-user root
$ setup.sh -- -b --become-user rootCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
설치가 완료되면
/var/lib/pulp/마운트 지점을 마운트 해제합니다.
3.3.1.5.1. pulpcore.service 구성 링크 복사링크가 클립보드에 복사되었습니다!
인벤토리 파일을 구성하고 SELinux 컨텍스트를 적용한 후 pulp 서비스를 구성합니다. 이렇게 하면 자동화 허브 서비스가 네트워크를 시작하고 원격 마운트 지점을 마운트한 후에만 시작됩니다.
프로세스
두 개의 마운트 지점이 설정된 경우 Pulp 서비스를 종료하여
pulpcore.service를 구성합니다.systemctl stop pulpcore.service
$ systemctl stop pulpcore.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl을 사용하여pulpcore.service를 편집합니다.systemctl edit pulpcore.service
$ systemctl edit pulpcore.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 항목을
pulpcore.service에 추가하여 자동화 허브 서비스가 네트워크를 시작하고 원격 마운트 지점을 마운트한 후에만 시작되도록 합니다.[Unit] After=network.target var-lib-pulp.mount
[Unit] After=network.target var-lib-pulp.mountCopy to Clipboard Copied! Toggle word wrap Toggle overflow remote-fs.target을 활성화합니다.systemctl enable remote-fs.target
$ systemctl enable remote-fs.targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 시스템을 재부팅합니다.
systemctl reboot
$ systemctl rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
문제 해결
pulpcore SELinux 정책의 버그로 etc/pulp/certs/ 에서 토큰 인증 공개/개인 키가 적절한 SELinux 레이블이 없으므로 pulp 프로세스가 실패할 수 있습니다. 이 경우 다음 명령을 실행하여 적절한 레이블을 임시로 연결합니다.
chcon system_u:object_r:pulpcore_etc_t:s0 /etc/pulp/certs/token_{private,public}_key.pem
$ chcon system_u:object_r:pulpcore_etc_t:s0 /etc/pulp/certs/token_{private,public}_key.pem
이 명령을 반복하여 시스템의 레이블을 다시 지정할 때마다 적절한 SELinux 레이블을 다시 첨부합니다.
3.3.1.5.2. SELinux 컨텍스트 적용 링크 복사링크가 클립보드에 복사되었습니다!
Pulp 디렉터리에 올바른 SELinux 컨텍스트를 적용하여 적절한 파일 액세스 권한 및 보안 정책 준수를 보장합니다.
인벤토리 파일을 구성한 후 SELinux에서 자동화 허브의 HA(고가용성) 배포를 활성화하려면 컨텍스트를 적용해야 합니다.
프로세스
Pulp 서비스를 종료합니다.
systemctl stop pulpcore.service
$ systemctl stop pulpcore.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow /var/lib/pulp/pulpcore_static을 마운트 해제합니다.umount /var/lib/pulp/pulpcore_static
$ umount /var/lib/pulp/pulpcore_staticCopy to Clipboard Copied! Toggle word wrap Toggle overflow /var/lib/pulp/:을 마운트 해제합니다.umount /var/lib/pulp/
$ umount /var/lib/pulp/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 텍스트 편집기를 사용하여
/etc/fstab를 열고/var/lib/pulp의 기존 값을 다음으로 바꿉니다.srv_rhel8:/data /var/lib/pulp nfs defaults,_netdev,nosharecache,context="system_u:object_r:pulpcore_var_lib_t:s0" 0 0
srv_rhel8:/data /var/lib/pulp nfs defaults,_netdev,nosharecache,context="system_u:object_r:pulpcore_var_lib_t:s0" 0 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow mount 명령을 실행합니다.
mount -a
$ mount -aCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3.1.6. 프라이빗 자동화 허브에서 콘텐츠 서명 구성 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 인증 콘텐츠 컬렉션에 성공적으로 서명하고 게시하려면 서명을 위해 프라이빗 자동화 허브를 구성해야 합니다.
사전 요구 사항
- GnuPG 키 쌍은 조직에서 안전하게 설정 및 관리합니다.
- 공개-개인 키 쌍은 프라이빗 자동화 허브에서 콘텐츠 서명을 구성하기 위한 적절한 액세스 권한을 갖습니다.
프로세스
파일 이름만 허용하는 서명 스크립트를 생성합니다.
참고이 스크립트는 서명 서비스 역할을 하며
PULP_SIGNING_KEY_FINGERPRINT환경 변수를 통해 지정된 키를 사용하여 해당 파일의 ascii-armored detachedgpg서명을 생성해야 합니다.스크립트는 다음 형식을 사용하여 JSON 구조를 출력합니다.
{"file": "filename", "signature": "filename.asc"}{"file": "filename", "signature": "filename.asc"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 파일 이름은 현재 작업 디렉터리 내부의 상대 경로입니다. 분리된 서명에는 파일 이름이 동일해야 합니다.
예: 다음 스크립트는 콘텐츠에 대한 서명을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Automation Platform 클러스터에 서명이 활성화된 프라이빗 자동화 허브를 배포하면 컬렉션에 새로운 UI 추가 기능이 표시됩니다.
automationhub_*로 시작하는 옵션은 Ansible Automation Platform 설치 프로그램 인벤토리 파일을 검토하십시오.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 두 개의 새 키(automationhub_auto_sign_collections 및 Automation hub_require_content_approval)는 컬렉션이 프라이빗 자동화 허브에 업로드된 후 서명하고 승인되어야 함을 나타냅니다.
3.3.1.7. 이벤트 기반 Ansible 컨트롤러에 안전한 플러그인 변수 추가 링크 복사링크가 클립보드에 복사되었습니다!
이벤트 기반 Ansible 컨트롤러에서 룰북 활성화를 실행하는 redhat.insights_eda 또는 유사한 플러그인을 사용하는 경우 Ansible Automation Platform의 디렉터리에 보안 플러그인 변수를 추가해야 합니다. 이렇게 하면 이벤트 기반 Ansible 컨트롤러와 소스 플러그인 간의 연결이 보장되고 포트 매핑이 올바르게 표시됩니다.
프로세스
-
안전한 플러그인 변수에 대한 디렉토리 만들기: Cryostat
-p ./group_vars/automationedacontroller -
새 설정에 대한 해당 디렉터리에 파일을 만듭니다(예:
./group_vars/automationedacontroller/custom.yml) 변수
automationedacontroller_additional_settings를 추가하여 이벤트 기반 Ansible 컨트롤러의 기본settings.yaml템플릿을 확장하고 활성화할 플러그인 목록이 포함된SAFE_PLUGINS필드를 추가합니다. 예를 들면 다음과 같습니다.automationedacontroller_additional_settings: SAFE_PLUGINS: - ansible.eda.webhook - ansible.eda.alertmanagerautomationedacontroller_additional_settings: SAFE_PLUGINS: - ansible.eda.webhook - ansible.eda.alertmanagerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Django 구성 파일
/etc/ansible-automation-platform/eda/settings.yaml에서SAFE_PLUGINS이상으로automationedacontroller_additional_settings변수를 확장할 수도 있습니다.
3.3.2. registry_username 및 registry_password 설정 링크 복사링크가 클립보드에 복사되었습니다!
온라인 번들 설치에 registry_username 및 registry_password 변수를 사용하는 경우 새 레지스트리 서비스 계정을 생성해야 합니다.
레지스트리 서비스 계정의 이름은 배포 시스템과 같이 인증 정보를 공유하는 환경에서 사용할 수 있는 토큰입니다.
프로세스
- https://access.redhat.com/terms-based-registry/accounts 로 이동합니다.
- 레지스트리 서비스 계정 페이지에서 클릭합니다.
- 허용된 문자만 사용하여 계정 이름을 입력합니다.
- 필요한 경우 계정에 대한 설명을 입력합니다.
- 을 클릭합니다.
- 검색 필드에서 이름을 검색하여 목록에서 생성된 계정을 찾습니다.
- 생성한 계정의 이름을 클릭합니다.
또는 토큰 이름을 알고 있는 경우 URL을 입력하여 페이지로 직접 이동할 수 있습니다.
https://access.redhat.com/terms-based-registry/token/<name-of-your-token>
https://access.redhat.com/terms-based-registry/token/<name-of-your-token>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 생성된 사용자 이름(계정 이름)과 토큰 을 표시하는 토큰 페이지가 열립니다.
- 토큰이 표시되지 않으면 클릭합니다. 이를 클릭하여 새 사용자 이름과 토큰을 생성할 수도 있습니다.
-
사용자 이름(예: "1234567|testuser")을 복사하고 이를 사용하여 변수
registry_username을 설정합니다. -
토큰을 복사하고 이를 사용하여 변수
registry_password를 설정합니다.
3.3.2.1. Redis 구성 링크 복사링크가 클립보드에 복사되었습니다!
Ansible Automation Platform은 독립 실행형 및 클러스터형 토폴로지 모두에서 중앙 집중식 Redis 인스턴스를 제공합니다.
RPM 배포에서 Redis 모드는 기본적으로 cluster 로 설정됩니다. 다음 예와 같이 인벤토리 파일 [all:vars] 섹션에서 이 설정을 변경할 수 있습니다.
Redis에 대한 자세한 내용은 설치 계획 의 캐싱 및 대기열 시스템을 참조하십시오.