4.2. 创建角色数据文件
本节演示如何为每个叶定义每个可组合角色,并将可组合的网络附加到每个对应角色。
流程
在
stack
用户本地目录中创建自定义角色
director:$ mkdir ~/roles
将默认 Controller、Compute 和 Ceph Storage 角色从 director 的核心模板集合复制到
~/roles
目录。重命名 Leaf 1 的文件:$ cp /usr/share/openstack-tripleo-heat-templates/roles/Controller.yaml ~/roles/Controller.yaml $ cp /usr/share/openstack-tripleo-heat-templates/roles/Compute.yaml ~/roles/Compute1.yaml $ cp /usr/share/openstack-tripleo-heat-templates/roles/CephStorage.yaml ~/roles/CephStorage1.yaml
编辑
Compute1.yaml
文件:$ vi ~/roles/Compute1.yaml
编辑此文件中
的名称
、网络
和HostnameFormatDefault
参数,以便它们与 Leaf 1 特定参数一致。例如:- name: Compute1 ... networks: - InternalApi1 - Tenant1 - Storage1 HostnameFormatDefault: '%stackname%-compute1-%index%'
保存这个文件。
编辑
CephStorage1.yaml
文件:$ vi ~/roles/CephStorage1.yaml
编辑此文件中的
名称和
网络参数,以便它们与 Leaf 1 特定参数一致。另外,添加
HostnameFormatDefault
参数,再定义 Ceph Storage 节点的 Leaf 1 主机名。例如:- name: CephStorage1 ... networks: - Storage1 - StorageMgmt1 HostnameFormatDefault: '%stackname%-cephstorage1-%index%'
保存这个文件。
复制 Leaf 1 Compute 和 Ceph Storage 文件,作为您的 Leaf 2 和 Leaf 3 文件的基础:
$ cp ~/roles/Compute1.yaml ~/roles/Compute2.yaml $ cp ~/roles/Compute1.yaml ~/roles/Compute3.yaml $ cp ~/roles/CephStorage1.yaml ~/roles/CephStorage2.yaml $ cp ~/roles/CephStorage1.yaml ~/roles/CephStorage3.yaml
编辑 Leaf 2 和 Leaf 3 文件中的
名称
、network 和HostnameFormatDefault
参数,以便它们与对应的 Leaf 网络参数一致。例如,Leaf 2 Compute 文件中的参数具有以下值:
- name: Compute2 ... networks: - InternalApi2 - Tenant2 - Storage2 HostnameFormatDefault: '%stackname%-compute2-%index%'
Leaf 2 Ceph Storage 参数具有以下值:
- name: CephStorage2 ... networks: - Storage2 - StorageMgmt2 HostnameFormatDefault: '%stackname%-cephstorage2-%index%'
当角色就绪时,使用以下命令生成完整角色数据文件:
$ openstack overcloud roles generate --roles-path ~/roles -o roles_data_spine_leaf.yaml Controller Compute1 Compute2 Compute3 CephStorage1 CephStorage2 CephStorage3
这会创建一个完整的
roles_data_spine_leaf.yaml
文件,其中包含每个对应 leaf 网络的所有自定义角色。
有关此文件的完整示例,请参阅 附录 C, roles_data 文件示例。
每个角色都有自己的 NIC 配置。在配置 spine-leaf 配置前,您需要创建一个基础 NIC 模板集来适合您的当前的 NIC 配置。