Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

7.2.5. 创建新角色

在本例中,旨在创建一个新的 Horizon 角色,以仅托管 OpenStack 仪表板(horizon)。在这种情况下,您可以创建一个自定义 角色 目录,其中包含新角色信息。

创建 默认角色 目录的自定义副本:

$ cp -r /usr/share/openstack-tripleo-heat-templates/roles ~/.

创建一个名为 ~/roles/Horizon.yaml 的新文件,再创建一个名为 base 和 core OpenStack Dashboard 服务的新 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::Fluentd
    - OS::TripleO::Services::AuditD
    - OS::TripleO::Services::Collectd
    - OS::TripleO::Services::MySQLClient
    - OS::TripleO::Services::Apache
    - OS::TripleO::Services::Horizon

最好将 CountDefault 设置为 1,以便默认的 Overcloud 始终包含 Horizon 节点。

如果在现有 overcloud 中扩展服务,请将现有服务保留在 Controller 角色上。如果创建新 overcloud,并且希望 OpenStack 控制面板保留在独立角色中,请从 Controller 角色定义中删除 OpenStack 控制面板组件:

- 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 _data 文件:

$ openstack overcloud roles generate -o roles_data-horizon.yaml \
  --roles-path ~/roles \
  Controller Compute Horizon

您可能需要为此角色定义一个新类别,以便可以标记特定的节点。在本例中,使用以下命令来创建 horizon 类别:

$ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 horizon
$ openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="horizon" horizon
$ openstack flavor set --property resources:VCPU=0 --property resources:MEMORY_MB=0 --property resources:DISK_GB=0 --property resources:CUSTOM_BAREMETAL=1 horizon

使用以下命令将节点标记到新类型中:

$ openstack baremetal node set --property capabilities='profile:horizon,boot_option:local' 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13

使用以下环境文件片段定义 Horizon 节点数和类别:

parameter_defaults:
  OvercloudHorizonFlavor: horizon
  HorizonCount: 1

在运行 openstack overcloud deploy 命令时,包含新的 roles_data 文件和环境文件。例如:

$ openstack overcloud deploy --templates -r ~/templates/roles_data-horizon.yaml -e ~/templates/node-count-flavor.yaml

部署完成后,这会创建一个由一个 Controller 节点、一个 Compute 节点和一个 Networker 节点组成的三节点 Overcloud。要查看 Overcloud 的节点列表,请运行以下命令:

$ openstack server list