6.2. Composable Service Architecture 검사
코어 Heat 템플릿 컬렉션에는 puppet/services
하위 디렉터리에 있는 구성 가능 서비스 템플릿 컬렉션이 포함되어 있습니다. 다음 명령을 사용하여 이러한 서비스를 볼 수 있습니다.
$ ls /usr/share/openstack-tripleo-heat-templates/puppet/services
각 서비스 템플릿에는 목적을 식별하는 설명이 포함되어 있습니다. 예를 들어 keystone.yaml
서비스 템플릿에는 다음 설명이 포함되어 있습니다.
description: > OpenStack Identity (`keystone`) service configured with Puppet
이러한 서비스 템플릿은 Red Hat OpenStack Platform 배포와 관련된 리소스로 등록됩니다. 즉, overcloud-resource-registry-puppet.j2.yaml
파일에 정의된 고유한 Heat 리소스 네임스페이스를 사용하여 각 리소스를 호출할 수 있습니다. 모든 서비스는 리소스 유형에 OS::TripleO::Services
네임스페이스를 사용합니다. 예를 들어 keystone.yaml
서비스 템플릿은 OS::TripleO::Services::Keystone
리소스 유형에 등록됩니다.
grep "OS::TripleO::Services::Keystone" /usr/share/openstack-tripleo-heat-templates/overcloud-resource-registry-puppet.j2.yaml OS::TripleO::Services::Keystone: puppet/services/keystone.yaml
overcloud.j2.yaml
Heat 템플릿에는 roles_data.yaml
파일에서 각 사용자 지정 역할에 대한 서비스 목록을 정의하는 Jinja2 기반 코드의 섹션이 포함되어 있습니다.
{{role.name}}Services: description: A list of service resources (configured in the Heat resource_registry) which represent nested stacks for each service that should get installed on the {{role.name}} role. type: comma_delimited_list default: {{role.ServicesDefault|default([])}}
기본 역할의 경우 ControllerServices
,ComputeServices
,BlockStorageServices
,ObjectStorageServices
, CephStorageServices , CephStorageServices
등의 서비스 목록 매개변수가 생성됩니다.
roles_data.yaml
파일에서 각 사용자 지정 역할에 대한 기본 서비스를 정의합니다. 예를 들어 default Controller 역할에는 다음 내용이 포함됩니다.
- name: Controller CountDefault: 1 ServicesDefault: - OS::TripleO::Services::CACerts - OS::TripleO::Services::CephMon - OS::TripleO::Services::CephExternal - OS::TripleO::Services::CephRgw - OS::TripleO::Services::CinderApi - OS::TripleO::Services::CinderBackup - OS::TripleO::Services::CinderScheduler - OS::TripleO::Services::CinderVolume - OS::TripleO::Services::Core - OS::TripleO::Services::Kernel - OS::TripleO::Services::Keystone - OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GlanceRegistry ...
그런 다음 이러한 서비스는 ControllerServices
매개변수의 기본 목록으로 정의됩니다.
환경 파일을 사용하여 서비스 매개변수의 기본 목록을 덮어쓸 수도 있습니다. 예를 들어, ControllerServices
를 환경 파일에서 parameter_default
로 정의하여 roles_data.yaml
파일의 서비스 목록을 덮어쓸 수 있습니다.