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