고가용성 자동화 허브 배포
자동화 허브의 고가용성 배포를 통해 안정성 및 스칼라성 향상
초록
머리말
이 가이드에서는 자동화 허브의 고가용성 배포를 위한 요구 사항 및 절차를 간략하게 설명합니다.
HA(고가용성) 구성은 자동화 허브 배포를 위한 신뢰성과 성능 저하를 높입니다.
자동화 허브를 배포하는 HA 배포에는 워크로드를 분산하는 로드 밸런서에서 동일한 서비스를 동시에 실행하는 여러 노드가 있습니다(활성 활성 구성). 이 구성에서는 서비스 다운 타임을 최소화하기 위해 단일 장애 지점을 제거하고 워크로드 요구 사항을 충족하기 위해 노드를 쉽게 추가하거나 제거할 수 있습니다.
이 가이드에서는 HA 자동화 허브 애플리케이션 스택에만 배포하는 방법을 설명합니다. 데이터베이스 및 파일 시스템 HA와 같은 기타 HA 구성 요소 또는 DNS 로드 밸런싱 설정은 이 가이드에서 다루지 않습니다.
보다 포괄적 수용을 위한 오픈 소스 용어 교체
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
Red Hat 문서에 관한 피드백 제공
Red Hat의 기술 콘텐츠에 대한 귀하의 피드백에 감사드리며, 귀하가 생각하는 것을 알려 주시기 바랍니다. 주석을 추가하거나, 인사이트를 제공하거나, 오타를 수정하거나, 질문을 하려면 문서에서 직접 이 작업을 수행할 수 있습니다.
Red Hat 계정이 있어야 하며 고객 포털에 로그인해야 합니다.
고객 포털에서 문서 피드백을 제출하려면 다음을 수행하십시오.
- 다중 페이지 HTML 형식을 선택합니다.
- 문서 오른쪽 상단에 있는 피드백 버튼을 클릭합니다.
- 피드백을 제공하려는 텍스트 섹션을 강조 표시합니다.
- 강조 표시된 텍스트 옆에 있는 피드백 추가 대화 상자를 클릭합니다.
- 페이지 오른쪽에 있는 텍스트 상자에 피드백을 입력한 다음 제출을 클릭합니다.
피드백을 제출할 때마다 추적 문제가 자동으로 생성됩니다. Submit 을 클릭한 후 표시되는 링크를 열고 문제 모니터링을 시작하거나 의견을 더 추가합니다.
1장. 고가용성 자동화 허브 요구 사항
HA(고가용성) 자동화 허브를 배포하기 전에 사용자 환경에 공유 파일 시스템이 설치되어 있고 해당하는 경우 네트워크 스토리지 시스템을 구성해야 합니다.
1.1. 필요한 공유 파일 시스템
고가용성 자동화 허브를 사용하려면 NFS와 같은 공유 파일 시스템이 사용자 환경에 이미 설치되어 있어야 합니다. Red Hat Ansible Automation Platform 설치 프로그램을 실행하기 전에 클러스터 전체에 /var/lib/pulp 디렉터리를 공유 파일 시스템 설치의 일부로 설치했는지 확인합니다. Red Hat Ansible Automation Platform 설치 프로그램에서 노드 중 하나에서 /var/lib/pulp 가 탐지되지 않아 고가용성 자동화 허브 설정이 실패하는 경우 오류를 반환합니다.
1.2. 네트워크 스토리지 설치 요구 사항
자동화 허브 노드 자체에 네트워크 스토리지를 사용하여 HA 자동화 허브를 설치하려면 먼저 firewalld 를 설치하고 사용하여 Ansible Automation Platform 설치 프로그램을 실행하기 전에 공유 스토리지 시스템에서 필요한 포트를 열어야 합니다.
다음 명령을 실행하여 firewalld 를 설치하고 구성합니다.
firewalld데몬을 설치합니다.$ dnf install firewalld
다음 명령을 사용하여 <service> 아래에 네트워크 스토리지를 추가합니다.
$ firewall-cmd --permanent --add-service=<service>
참고지원되는 서비스 목록은
$ firewall-cmd --get-services명령을 사용하십시오.설정을 적용하려면 다시 로드합니다.
$ firewall-cmd --reload
2장. 고가용성 자동화 허브 설치
HA(고가용성) 구성에 자동화 허브를 설치하도록 Ansible Automation Platform 설치 프로그램을 구성합니다. 마운트 지점을 생성하고 Ansible Automation Platform 환경에 적절한 SELinux 컨텍스트를 추가하여 SELinux에 HA 자동화 허브를 설치합니다.
2.1. 고가용성 자동화 허브 설치
Ansible Automation Platform 설치 프로그램에서 인벤토리 파일을 변경한 다음 ./setup.sh 스크립트를 실행하여 고가용성 자동화 허브를 설치합니다.
데이터베이스 호스트 IP 지정
automation_pg_host 및 automation_pg_port 인벤토리 변수를 사용하여 데이터베이스 호스트의 IP 주소를 지정합니다. 예를 들면 다음과 같습니다.
automationhub_pg_host='192.0.2.10' automationhub_pg_port='5432'
또한 automationhub_pg_host 인벤토리 변수의 값을 사용하여 [database] 섹션에서 데이터베이스 호스트의 IP 주소를 지정합니다.
[database] 192.0.2.10
클러스터형 설정의 모든 인스턴스 나열
클러스터형 설정을 설치하는 경우 [automationhub] 섹션에서 localhost ansible_connection=local 을 모든 인스턴스의 호스트 이름 또는 IP로 바꿉니다. 예를 들면 다음과 같습니다.
[automationhub] automationhub1.testing.ansible.com ansible_user=cloud-user ansible_host=192.0.2.18 automationhub2.testing.ansible.com ansible_user=cloud-user ansible_host=192.0.2.20 automationhub3.testing.ansible.com ansible_user=cloud-user ansible_host=192.0.2.22
Red Hat Single Sign-On 요구 사항
자동화 허브 환경에 Red Hat Single Sign-On을 구현하는 경우 automationhub_main_url 인벤토리 변수를 사용하여 클라이언트가 연결할 기본 자동화 허브 URL을 지정합니다. 예를 들면 다음과 같습니다.
automationhub_main_url = 'https://automationhub.ansible.com'
설치 후
아래 지시문이 각 Private Automation Hub 서버의 /etc/pulp/settings.py 에 있는지 확인합니다.
USE_X_FORWARDED_PORT = True USE_X_FORWARDED_HOST = True
automationhub_main_url 을 지정하지 않으면 [automationhub] 그룹의 첫 번째 노드가 기본값으로 사용됩니다.
2.2. SELinux에 자동화 허브의 HA(고가용성) 배포 설치
SELinux에서 자동화 허브의 HA(고가용성) 배포를 설정하려면 /var/lib/pulp 및 /var/lib/pulp /pulpcore_static 에 대한 두 개의 마운트 지점을 만든 다음 각각에 적절한 SELinux 컨텍스트를 할당합니다. /var/lib/pulp/pulpcore_static 컨텍스트를 추가하고 /var/lib/pulp 에 대한 컨텍스트를 추가하기 전에 Ansible Automation Platform 설치 프로그램을 실행해야 합니다.
사전 요구 사항
- 서버에 NFS 내보내기를 이미 구성했습니다.
사전 설치 절차
/var/lib/pulp에 마운트 지점을 만듭니다.$ mkdir /var/lib/pulp/
텍스트 편집기를 사용하여
/etc/fstab을 열고 다음 값을 추가합니다.srv_rhel8:/data /var/lib/pulp nfs defaults,_netdev,nosharecache 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
다음 명령을 실행합니다.
$ systemctl daemon-reload
/var/lib/pulp에 대해 mount 명령을 실행합니다.$ mount /var/lib/pulp
/var/lib/pulp/pulpcore_static에 마운트 지점을 만듭니다.$ mkdir /var/lib/pulp/pulpcore_static
마운트 명령을 실행합니다.
$ mount -a
마운트 지점이 설정된 상태에서 Ansible Automation Platform 설치 프로그램을 실행합니다.
$ setup.sh -- -b --become-user root
설치가 완료되면 /var/lib/pulp/ 마운트 지점을 마운트 해제한 다음 적절한 SELinux 컨텍스트를 적용합니다.
설치 후 절차
Pulp 서비스를 종료합니다.
$ systemctl stop pulpcore.service
/var/lib/pulp/pulpcore_static을 마운트 해제합니다.$ umount /var/lib/pulp/pulpcore_static
/var/lib/pulp/를 마운트 해제합니다.$ umount /var/lib/pulp/
텍스트 편집기를 사용하여
/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
마운트 명령을 실행합니다.
$ mount -a
pulpcore.service를 구성합니다.
두 개의 마운트 지점이 설정되면 Pulp 서비스를 종료하여
pulpcore.service를 구성합니다.$ systemctl stop pulpcore.service
systemctl:을 사용하여pulpcore.service를 편집합니다.$ systemctl edit pulpcore.service
다음 항목을
pulpcore.service에 추가하여 네트워크를 시작하고 원격 마운트 지점을 마운트한 후에만 자동화 허브 서비스가 시작되도록 합니다.[Unit] After=network.target var-lib-pulp.mount
remote-fs.target을 활성화합니다.$ systemctl enable remote-fs.target
시스템을 재부팅합니다.
$ systemctl reboot
문제 해결
pulpcore SELinux 정책의 버그로 인해 etc/pulp/certs/ 의 토큰 인증 공개/개인 키가 적절한 SELinux 레이블이 없으므로 pulp 프로세스가 실패할 수 있습니다. 이 경우 다음 명령을 실행하여 적절한 라벨을 임시로 연결합니다.
$ chcon system_u:object_r:pulpcore_etc_t:s0 /etc/pulp/certs/token_{private,public}_key.pem이 명령을 반복하여 시스템의 레이블을 다시 지정할 때마다 적절한 SELinux 레이블을 다시 연결해야 합니다.
추가 리소스
- SELinux 컨텍스트 목록은 Pulp Project 문서의 SELinux 요구 사항을 참조하십시오.
- Pulp 폴더에 대한 자세한 설명은 Filesystem Layout 에서 참조하십시오.