Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
6.2. 检查可组合服务架构
核心 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 模板包含基于 Jinja2 的代码的部分,用于为 roles_data.yaml 文件中每个自定义角色定义一个服务列表:
{{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。
您可以在 roles_data.yaml 文件中定义每个自定义角色的默认服务。例如,默认的 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 文件中的 services 列表。