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列出可用于生成自定义
roles_data.yaml文件的默认角色。$ openstack overcloud role list如果要使用所有这些角色,请运行以下命令来生成
roles_data.yaml文件:$ openstack overcloud roles generate -o roles_data.yaml如果要自定义角色文件以仅包含某些角色,您可以将角色的名称作为参数传递给上一步中的命令。例如,要使用 Controller、Compute 和 Telemetry 角色创建
roles_data.yaml文件,请运行以下命令:$ openstack overcloud roles generate - roles_data.yaml Controller Compute Telemetry
3.3.2. 为 OpenDaylight 创建自定义角色 复制链接链接已复制到粘贴板!
要创建自定义角色,请在角色文件目录中创建新的角色文件,并生成新的 roles_data.yaml 文件。对于每个您创建的自定义角色,您必须创建一个新的角色文件。每个自定义角色文件都必须只包括特定角色的数据,自定义角色文件名必须与角色名称匹配。
简而言之,该文件必须定义这些参数:
name:定义角色的名称。名称必须始终是一个非空唯一字符串。- Name: Custom_roleServicesDefault:列出此角色中使用的服务。如果没有使用服务,该变量可以保持空状态。示例格式类似如下:ServicesDefault: - OS::TripleO::Services::AuditD - OS::TripleO::Services::CACerts - OS::TripleO::Services::CertmongerUser - OS::TripleO::Services::Collectd - OS::TripleO::Services::Docker
除了所需参数外,您还可以定义进一步设置:
CountDefault:定义节点的默认数量。如果CountDefault:为空,则默认为零。CountDefault: 1HostnameFormatDefault:定义主机名的格式字符串。该值是可选的。HostnameFormatDefault: '%stackname%-computeovsdpdk-%index%'description:描述和添加有关角色的信息。Description: Compute OvS DPDK Role
流程
将默认角色文件复制到新目录中,并将原始文件保留为备份。
$ mkdir ~/roles $ cp /usr/share/openstack-tripleo-heat-templates/roles/* ~/roles修改
~/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在
~/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- 保存该文件。
生成新角色文件,以便在自定义角色中使用 OpenDaylight 部署 OpenStack overcloud 时使用。
$ openstack overcloud roles generate --roles-path ~/roles -o ~/roles_data.yaml Controller Compute OpenDaylight
3.3.3. 在自定义角色中使用 OpenDaylight 安装 OverCloud 复制链接链接已复制到粘贴板!
开始前
- 安装 undercloud。如需更多信息 ,请参阅安装 undercloud。
- 创建环境文件,并链接到 overcloud 容器镜像。如需更多信息,请参阅使用 OpenDaylight 准备 overcloud 安装。
- 准备角色文件,以在自定义角色中配置 OpenDaylight。如需更多信息,请参阅为 OpenDaylight 创建自定义角色。
流程
创建自定义角色。在环境文件中设置以下参数值:
- OvercloudOpenDaylightFlavor: opendaylight - OvercloudOpenDaylightCount: 3如需更多信息,请参阅 创建 roles_data 文件。
使用 -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
部署命令中存在的环境文件会覆盖您在 命令中之前包含的环境文件。您必须注意您包括的环境文件顺序以避免意外覆盖参数。
您可以通过创建一个最小的环境文件来覆盖一些参数,该文件只设置您要更改的参数并将其与默认环境文件合并。
更多信息
r选项会在安装时覆盖角色定义。-r <roles_data>.yaml- 自定义角色在安装过程中需要一个额外的 ironic 节点。
- 要覆盖任何自定义角色的 rhosp13 可组合角色中的节点计数器,请使用本例中的语法: <role-name>Count: <value>,角色名称会更新 role_data.yaml 文件中的准确名称详情。
3.3.4. 验证自定义角色中的 OpenDaylight 安装 复制链接链接已复制到粘贴板!
开始前
- 在自定义角色中安装带有 OpenDaylight 的 Overcloud。有关更多信息,请参阅在 自定义角色 中安装带有 OpenDaylight 的 Overcloud。
流程
列出现有实例:
$ openstack server list验证新的 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 | +--------------------------------------+--------------------------+--------+------------+-------------+--------------------+