6장. 구성 가능 서비스
RHOSP(Red Hat OpenStack Platform)에는 사용자 지정 역할을 정의하고 역할에서 서비스 조합을 구성하는 기능이 포함되어 있습니다. 자세한 내용은 Advanced Overcloud Customization 가이드의 Composable Services and Custom Roles 를 참조하십시오. 통합의 일부로 자체 사용자 지정 서비스를 정의하고 선택한 역할에 포함할 수 있습니다.
6.1. 구성 가능 서비스 아키텍처 검사 링크 복사링크가 클립보드에 복사되었습니다!
코어 heat 템플릿 컬렉션에는 다음 두 가지 일련의 구성 가능 서비스 템플릿이 포함되어 있습니다.
-
배포에
는 주요 OpenStack 서비스에 대한 템플릿이 포함되어 있습니다. -
Puppet/services
에는 구성 가능 서비스를 구성하기 위한 레거시 템플릿이 포함되어 있습니다. 경우에 따라 구성 가능 서비스는 호환성을 위해 이 디렉터리의 템플릿을 사용합니다. 대부분의 경우 구성 가능 서비스는배포
디렉터리에 있는 템플릿을 사용합니다.
각 템플릿에는 용도를 식별하는 설명이 포함되어 있습니다. 예를 들어 deployment/time/ntp-baremetal-puppet.yaml
서비스 템플릿에는 다음 설명이 포함되어 있습니다.
description: > NTP service deployment using puppet, this YAML file creates the interface between the HOT template and the puppet manifest that actually installs and configure NTP.
description: >
NTP service deployment using puppet, this YAML file
creates the interface between the HOT template
and the puppet manifest that actually installs
and configure NTP.
이러한 서비스 템플릿은 Red Hat OpenStack Platform 배포에 특정한 리소스로 등록됩니다. 즉, overcloud-resource-registry-puppet.j2.yaml
파일에 정의된 고유한 heat 리소스 네임스페이스를 사용하여 각 리소스를 호출할 수 있습니다. 모든 서비스는 해당 리소스 유형에 OS::TripleO::Services
네임스페이스를 사용합니다.
일부 리소스는 기본 구성 가능 서비스 템플릿을 직접 사용합니다.
resource_registry: ... OS::TripleO::Services::Ntp: deployment/time/ntp-baremetal-puppet.yaml ...
resource_registry:
...
OS::TripleO::Services::Ntp: deployment/time/ntp-baremetal-puppet.yaml
...
그러나 핵심 서비스에는 컨테이너가 필요하며 컨테이너화된 서비스 템플릿을 사용합니다. 예를 들어 keystone
컨테이너화된 서비스는 다음 리소스를 사용합니다.
resource_registry: ... OS::TripleO::Services::Keystone: deployment/keystone/keystone-container-puppet.yaml ...
resource_registry:
...
OS::TripleO::Services::Keystone: deployment/keystone/keystone-container-puppet.yaml
...
이러한 컨테이너화된 템플릿은 일반적으로 종속성을 포함하는 다른 템플릿을 참조합니다. 예를 들어 deployment/keystone/keystone-container-puppet.yaml
템플릿은 Base 템플릿의 출력을 ContainersCommon
리소스에 저장합니다.
resources: ContainersCommon: type: ../containers-common.yaml
resources:
ContainersCommon:
type: ../containers-common.yaml
그런 다음 컨테이너화된 템플릿은 containers-common.yaml
템플릿의 기능 및 데이터를 통합할 수 있습니다.
overcloud.j2.yaml
heat 템플릿에는 roles_data.yaml
파일에서 각 사용자 지정 역할에 대한 서비스 목록을 정의하는 Jinja2 기반 코드 섹션이 포함되어 있습니다.
기본 역할의 경우 다음 서비스 목록 매개변수가 생성됩니다. ControllerServices
,ComputeServices
,BlockStorageServices
,ObjectStorageServices
, CephStorageServices
.
roles_data.yaml
파일에서 각 사용자 지정 역할에 대한 기본 서비스를 정의합니다. 예를 들어 default Controller 역할에는 다음 내용이 포함됩니다.
그러면 이러한 서비스가 ControllerServices
매개변수의 기본 목록으로 정의됩니다.
환경 파일을 사용하여 서비스 매개변수의 기본 목록을 덮어쓸 수도 있습니다. 예를 들어 환경 파일에서 Controller
Service를 매개 변수_default
로 정의하여 roles_data.yaml
파일의 서비스 목록을 재정의할 수 있습니다.