6.3. 创建 roles_data 文件

虽然您可以手动创建自定义 roles_data 文件,但您也可以使用单独的角色模板自动生成文件。director 提供多个命令来管理角色模板并自动生成自定义 roles_data 文件。

流程

  1. 列出默认角色模板:

    $ openstack overcloud roles list
    BlockStorage
    CephStorage
    Compute
    ComputeHCI
    ComputeOvsDpdk
    Controller
    ...
  2. 使用 openstack overcloud roles show 命令查看 YAML 格式的角色定义:

    $ openstack overcloud roles show Compute
  3. 生成自定义 roles_data 文件。使用 openstack overcloud roles generate 命令将多个预定义角色加入到一个文件中。例如,运行以下命令生成 roles_data.yaml 文件,该文件包含 Controller, Compute, 和 Networker 角色:

    $ openstack overcloud roles generate -o ~/roles_data.yaml Controller Compute Networker

    使用 -o 选项定义输出文件的名称。

    此命令创建自定义 roles_data 文件。但是,上例使用 ControllerNetworker 角色,它们都使用相同的网络代理。这意味着网络服务从 Controller 角色扩展到 Networker 角色,overcloud 会在 ControllerNetworker 节点之间平衡网络服务的负载。

    要使此 Networker 角色独立,您可以创建自己的自定义角色角色,以及您需要的任何其他角色。这可让您从您自己的自定义角色生成 roles_data 文件。

  4. 将目录从核心 heat 模板集合复制到 stack 用户的主目录:

    $ cp -r /usr/share/openstack-tripleo-heat-templates/roles ~/.
  5. 在此目录中添加或修改自定义角色文件。将 --roles-path 选项与任何 role 子命令一起使用,将这个目录用作自定义角色的源:

    $ openstack overcloud roles generate -o my_roles_data.yaml \
      --roles-path ~/roles \
      Controller Compute Networker

    此命令从 ~/roles 目录中的单独角色生成单个 my_roles_data.yaml 文件。

注意

默认角色集合还包含 ControllerOpenStack 角色,该角色不包括 Networker, Messaging, 和 Database 角色的服务。您可以将 ControllerOpenStack 与独立 Networker, Messaging, and Database 角色结合使用。