6.6. 创建新角色
您可以使用可组合服务架构根据部署的要求创建新角色。例如,您可能希望仅创建一个新的 Horizon
角色来仅托管 OpenStack 控制面板(horizon
)。
角色名称必须以字母或数字结尾,并且仅包含字母、数字和连字符。角色名称中不得使用下划线。
流程
创建默认
roles
目录的自定义副本:$ cp -r /usr/share/openstack-tripleo-heat-templates/roles ~/.
创建名为
~/roles/114.yaml
的新文件,并创建一个包含基本和核心 OpenStack 仪表板服务的新Horizon
角色:- name: Horizon CountDefault: 1 HostnameFormatDefault: '%stackname%-horizon-%index%' ServicesDefault: - OS::TripleO::Services::CACerts - OS::TripleO::Services::Kernel - OS::TripleO::Services::Ntp - OS::TripleO::Services::Snmp - OS::TripleO::Services::Sshd - OS::TripleO::Services::Timezone - OS::TripleO::Services::TripleoPackages - OS::TripleO::Services::TripleoFirewall - OS::TripleO::Services::SensuClient - OS::TripleO::Services::FluentdClient - OS::TripleO::Services::AuditD - OS::TripleO::Services::Collectd - OS::TripleO::Services::MySQLClient - OS::TripleO::Services::Apache - OS::TripleO::Services::Horizon
-
将
name
参数设置为自定义角色的名称。自定义角色名称的最大长度为 47 个字符。 -
将
CountDefault
参数设置为1
,以便默认 overcloud 始终包含Horizon
节点。
-
将
可选:如果要扩展现有 overcloud 中的服务,请在
Controller
角色中保留现有服务。如果要创建新 overcloud,并且希望 OpenStack 控制面板保留在独立角色上,请从Controller
角色定义中删除 OpenStack Dashboard 组件:- name: Controller CountDefault: 1 ServicesDefault: ... - OS::TripleO::Services::GnocchiMetricd - OS::TripleO::Services::GnocchiStatsd - OS::TripleO::Services::HAproxy - OS::TripleO::Services::HeatApi - OS::TripleO::Services::HeatApiCfn - OS::TripleO::Services::HeatApiCloudwatch - OS::TripleO::Services::HeatEngine # - OS::TripleO::Services::Horizon # Remove this service - OS::TripleO::Services::IronicApi - OS::TripleO::Services::IronicConductor - OS::TripleO::Services::Iscsid - OS::TripleO::Services::Keepalived ...
使用
~/roles
目录作为源生成新的roles_data-horizon.yaml
文件:$ openstack overcloud roles generate -o roles_data-horizon.yaml \ --roles-path ~/roles \ Controller Compute Horizon
为此角色定义一个新类别,以便您可以标记特定的节点。在本例中,使用以下命令创建一个
horizon
类别:创建
horizon
类别:(undercloud)$ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 horizon
注意这些属性不用于调度实例,但计算调度程序将使用磁盘大小来确定根分区大小。
使用自定义资源类为 Dashboard 服务(horizon)标记您要指定的每个裸机节点:
(undercloud)$ openstack baremetal node set --resource-class baremetal.HORIZON <NODE>
将
<NODE>
替换为裸机节点的 ID。将
horizon
类别与自定义资源类关联:(undercloud)$ openstack flavor set --property resources:CUSTOM_BAREMETAL_HORIZON=1 horizon
要确定与裸机节点的资源类对应的自定义资源类的名称,请将资源类转换为大写,用下划线替换 punctuation,并使用
CUSTOM_
前缀。注意类别只能请求一个裸机资源类实例。
设置以下类别属性,以防止计算调度程序使用裸机类别属性来调度实例:
(undercloud)$ openstack flavor set --property resources:VCPU=0 --property resources:MEMORY_MB=0 --property resources:DISK_GB=0 horizon
使用以下环境文件片断定义 Horizon 节点数和类型:
parameter_defaults: OvercloudHorizonFlavor: horizon HorizonCount: 1
在
openstack overcloud deploy
命令中包含新的roles_data-horizon.yaml
文件和环境文件,以及与部署相关的任何其他环境文件:$ openstack overcloud deploy --templates -r ~/templates/roles_data-horizon.yaml -e ~/templates/node-count-flavor.yaml
此配置会创建一个三节点 overcloud,它由一个 Controller 节点、一个 Compute 节点和一个 Networker 节点组成。要查看 overcloud 中的节点列表,请运行以下命令:
$ openstack server list