3.3. 在自定义角色中安装 OpenDaylight


在 Custom 角色中安装 OpenDaylight 会导致隔离的 OpenDaylightApi 服务在指定的 OpenDaylight 节点上运行,与 Controller 节点不同。

如果要将 Custom 角色用于 OpenDaylight,您必须创建一个角色文件,其中包含节点布局和功能配置。

3.3.1. 根据默认角色自定义角色文件

您可以使用用户定义的角色列表部署 OpenStack,每个角色都运行用户定义的服务列表。角色是一组包含独立服务或配置的节点。例如,您可以创建一个包含 nova API 服务的 Controller 角色。您可以查看 openstack-tripleo-heat-templates 中的示例角色。

使用这些角色来生成 roles_data.yaml 文件,该文件包含 overcloud 节点所需的角色。您还可以通过在目录中创建单独的文件来创建自定义角色,并使用它们生成新的 roles_data.yaml

要创建仅安装特定 OpenStack 角色的自定义环境文件,请完成以下步骤:

流程

  • 加载管理员凭据。

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  • 列出可用于生成自定义 roles_data.yaml 文件的默认角色。

    $ openstack overcloud role list
    Copy to Clipboard Toggle word wrap
  • 如果要使用所有这些角色,请运行以下命令来生成 roles_data.yaml 文件:

    $ openstack overcloud roles generate -o roles_data.yaml
    Copy to Clipboard Toggle word wrap
  • 如果要自定义角色文件以仅包含某些角色,您可以将角色的名称作为参数传递给上一步中的命令。例如,要使用 ControllerComputeTelemetry 角色创建 roles_data.yaml 文件,请运行以下命令:

    $ openstack overcloud roles generate - roles_data.yaml Controller Compute Telemetry
    Copy to Clipboard Toggle word wrap

3.3.2. 为 OpenDaylight 创建自定义角色

要创建自定义角色,请在角色文件目录中创建新的角色文件,并生成新的 roles_data.yaml 文件。对于每个您创建的自定义角色,您必须创建一个新的角色文件。每个自定义角色文件都必须只包括特定角色的数据,自定义角色文件名必须与角色名称匹配。

简而言之,该文件必须定义这些参数:

  • name: 定义角色的名称。名称必须始终是一个非空唯一字符串。

    - Name: Custom_role
    Copy to Clipboard Toggle word wrap
  • ServicesDefault: 列出此角色中使用的服务。如果没有使用服务,该变量可以保持空状态。示例格式类似如下:

    ServicesDefault:
        - OS::TripleO::Services::AuditD
        - OS::TripleO::Services::CACerts
        - OS::TripleO::Services::CertmongerUser
        - OS::TripleO::Services::Collectd
        - OS::TripleO::Services::Docker
    Copy to Clipboard Toggle word wrap

除了所需参数外,您还可以定义进一步设置:

  • CountDefault: 定义节点的默认数量。如果 CountDefault: 为空,则默认为零。

    CountDefault: 1
    Copy to Clipboard Toggle word wrap
  • HostnameFormatDefault: 定义主机名的格式字符串。该值是可选的。

    HostnameFormatDefault: '%stackname%-computeovsdpdk-%index%'
    Copy to Clipboard Toggle word wrap
  • description: 描述和添加有关角色的信息。

    Description:
        Compute OvS DPDK Role
    Copy to Clipboard Toggle word wrap

流程

  1. 将默认角色文件复制到新目录中,并将原始文件保留为备份。

    $ mkdir ~/roles
    $ cp /usr/share/openstack-tripleo-heat-templates/roles/* ~/roles
    Copy to Clipboard Toggle word wrap
  2. 修改 ~/roles 中的 Controller.yaml 文件中的默认 Controller 角色,并从文件中删除 OpenDaylightApi 行,以禁用 Controller 节点上的 OpenDaylightAPI 服务:

       - name: Controller
         CountDefault: 1
         ServicesDefault:
          - OS::TripleO::Services::TripleoFirewall
          - OS::TripleO::Services::OpenDaylightApi #<--Remove this
          - OS::TripleO::Services::OpenDaylightOvs
    Copy to Clipboard Toggle word wrap
  3. ~/roles 目录中创建一个新的 OpenDaylight.yaml 文件,并添加 OpenDaylight 角色描述:

    - name: OpenDaylight
       CountDefault: 1
       ServicesDefault:
         - OS::TripleO::Services::Aide
         - OS::TripleO::Services::AuditD
         - OS::TripleO::Services::CACerts
         - OS::TripleO::Services::CertmongerUser
         - OS::TripleO::Services::Collectd
         - OS::TripleO::Services::Docker
         - OS::TripleO::Services::Fluentd
         - OS::TripleO::Services::Ipsec
         - OS::TripleO::Services::Kernel
         - OS::TripleO::Services::LoginDefs
         - OS::TripleO::Services::MySQLClient
         - OS::TripleO::Services::Ntp
         - OS::TripleO::Services::ContainersLogrotateCrond
         - OS::TripleO::Services::Rhsm
         - OS::TripleO::Services::RsyslogSidecar
         - OS::TripleO::Services::Securetty
         - OS::TripleO::Services::SensuClient
         - OS::TripleO::Services::Snmp
         - OS::TripleO::Services::Sshd
         - OS::TripleO::Services::Timezone
         - OS::TripleO::Services::TripleoFirewall
         - OS::TripleO::Services::TripleoPackages
         - OS::TripleO::Services::Tuned
         - OS::TripleO::Services::Ptp
         - OS::TripleO::Services::OpenDaylightApi
    Copy to Clipboard Toggle word wrap
  4. 保存该文件。
  5. 生成新角色文件,以便在自定义角色中使用 OpenDaylight 部署 OpenStack overcloud 时使用。

    $ openstack overcloud roles generate --roles-path ~/roles -o ~/roles_data.yaml Controller Compute OpenDaylight
    Copy to Clipboard Toggle word wrap

开始前

流程

  1. 创建自定义角色。在环境文件中设置以下参数值:

          - OvercloudOpenDaylightFlavor: opendaylight
          - OvercloudOpenDaylightCount: 3
    Copy to Clipboard Toggle word wrap

    如需更多信息,请参阅 创建 roles_data 文件

  2. 使用 -r 参数运行部署命令来覆盖默认的角色定义。此选项告知部署命令使用包含您的自定义角色的 roles_data.yaml 文件。将您在上一步中创建的 odl-composable.yaml 环境文件传递给这个部署命令。在本例中,总共有三个 ironic 节点。为自定义 OpenDaylight 角色保留了一个 ironic 节点:

    $ openstack overcloud deploy --templates /usr/share/openstack-tripleo-heat-templates
    -e /usr/share/openstack-tripleo-heat-templates/environments/docker.yaml
    -e /usr/share/openstack-tripleo-heat-templates/environments/services-docker/neutron-opendaylight.yaml
    -e network-environment.yaml --compute-scale 1 --ntp-server 0.se.pool.ntp.org --control-flavor control --compute-flavor compute -r ~/roles_data.yaml
    -e /home/stack/templates/docker-images.yaml
    -e /home/stack/templates/odl-images.yaml
    -e /home/stack/templates/odl-composable.yaml
    Copy to Clipboard Toggle word wrap
注意

部署命令中存在的环境文件会覆盖您在 命令中之前包含的环境文件。您必须注意您包括的环境文件顺序以避免意外覆盖参数。

提示

您可以通过创建一个最小的环境文件来覆盖一些参数,该文件只设置您要更改的参数并将其与默认环境文件合并。

更多信息

  • r 选项会在安装时覆盖角色定义。

    -r <roles_data>.yaml
    Copy to Clipboard Toggle word wrap
  • 自定义角色在安装过程中需要一个额外的 ironic 节点。
  • 要覆盖任何自定义角色的 rhosp13 可组合角色中的节点计数器,请使用本例中的语法: <role-name>Count: <value>,角色名称会更新 role_data.yaml 文件中的准确名称详情。

3.3.4. 验证自定义角色中的 OpenDaylight 安装

开始前

流程

  1. 列出现有实例:

    $ openstack server list
    Copy to Clipboard Toggle word wrap
  2. 验证新的 OpenDaylight 角色是否作为实例专用:

    +--------------------------------------+--------------------------+--------+------------+-------------+--------------------+
    | ID                                   | Name                     | Status | Task State | Power State | Networks           |
    +--------------------------------------+--------------------------+--------+------------+-------------+--------------------+
    | 360fb1a6-b5f0-4385-b68a-ff19bcf11bc9 | overcloud-controller-0   | BUILD  | spawning   | NOSTATE     | ctlplane=192.0.2.4 |
    | e38dde02-82da-4ba2-b5ad-d329a6ceaef1 | overcloud-novacompute-0  | BUILD  | spawning   | NOSTATE     | ctlplane=192.0.2.5 |
    | c85ca64a-77f7-4c2c-a22e-b71d849a72e8 | overcloud-opendaylight-0 | BUILD  | spawning   | NOSTATE     | ctlplane=192.0.2.8 |
    +--------------------------------------+--------------------------+--------+------------+-------------+--------------------+
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部