6.5. 创建新角色


在本例中,旨在创建一个新的 Networker 角色,以仅托管 OpenStack 网络(neutron)代理。在这种情况下,您可以创建一个包含新角色信息的自定义 roles_data 文件。

创建默认 roles_data.yaml 文件的自定义副本:

$ cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml ~/templates/roles_data-network_node.yaml
Copy to Clipboard Toggle word wrap

编辑新的 roles_data 文件,再创建一个新的 Networker 角色,其中包含基础和核心 OpenStack 网络服务。例如:

- name: Networker
  CountDefault: 1
  HostnameFormatDefault: '%stackname%-networker-%index%'
  ServicesDefault:
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::FluentdClient
    - OS::TripleO::Services::Kernel
    - OS::TripleO::Services::NeutronDhcpAgent
    - OS::TripleO::Services::NeutronL3Agent
    - OS::TripleO::Services::NeutronMetadataAgent
    - OS::TripleO::Services::NeutronOvsAgent
    - OS::TripleO::Services::Ntp
    - OS::TripleO::Services::SensuClient
    - OS::TripleO::Services::Snmp
    - OS::TripleO::Services::Timezone
    - OS::TripleO::Services::TripleoPackages
    - OS::TripleO::Services::TripleoFirewall
    - OS::TripleO::Services::VipHosts
Copy to Clipboard Toggle word wrap

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

如果在现有 overcloud 中扩展服务,请将现有服务保留在 Controller 角色上。如果创建新 overcloud,且您只希望 OpenStack 网络代理保留在单机角色中,请从 Controller 角色定义中删除 OpenStack 网络代理:

- 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
    - OS::TripleO::Services::HeatApi
    - OS::TripleO::Services::HeatApiCfn
    - OS::TripleO::Services::HeatApiCloudwatch
    - OS::TripleO::Services::HeatEngine
    - OS::TripleO::Services::MySQL
    - OS::TripleO::Services::NeutronDhcpAgent       # Remove this service
    - OS::TripleO::Services::NeutronL3Agent         # Remove this service
    - OS::TripleO::Services::NeutronMetadataAgent   # Remove this service
    - OS::TripleO::Services::NeutronApi
    - OS::TripleO::Services::NeutronCorePlugin
    - OS::TripleO::Services::NeutronOvsAgent        # Remove this service
    - OS::TripleO::Services::RabbitMQ
...
Copy to Clipboard Toggle word wrap

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

$ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 networker
$ openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="networker" networker
Copy to Clipboard Toggle word wrap

使用以下命令将节点标记为新类别:

$ openstack baremetal node set --property capabilities='profile:networker,boot_option:local' 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13
Copy to Clipboard Toggle word wrap

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

parameter_defaults:
  OvercloudNetworkerFlavor: networker
  NetworkerCount: 1
Copy to Clipboard Toggle word wrap

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

$ openstack overcloud deploy --templates -r ~/templates/roles_data-network_node.yaml -e ~/templates/node-count-flavor.yaml
Copy to Clipboard Toggle word wrap

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

$ nova list
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat