Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

4.6. Puppet:为单个节点自定义 Hieradata

您可以使用 Heat 模板集合为各个节点设置 Puppet hieradata。要做到这一点,您需要获取保存为节点的内省数据一部分的系统 UUID:

$ openstack baremetal introspection data save 9dcc87ae-4c6d-4ede-81a5-9b20d7dc4a14 | jq .extra.system.product.uuid

这会输出一个系统 UUID。例如:

"F5055C6C-477F-47FB-AFE5-95C6928C407F"

在定义节点特定 hieradata 的环境中使用此系统 UUID,并将 per_node.yaml 模板注册到预配置 hook 中。例如:

resource_registry:
  OS::TripleO::ComputeExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/pre_deploy/per_node.yaml
parameter_defaults:
  NodeDataLookup: '{"F5055C6C-477F-47FB-AFE5-95C6928C407F": {"nova::compute::vcpu_pin_set": [ "2", "3" ]}}'

在运行 openstack overcloud deploy 时包括此环境文件。

per_node.yaml 模板在与每个系统 UUID 对应的节点上生成一组 heiradata 文件,并包含您定义的 hieradata。如果没有定义 UUID,则生成的 hieradata 文件为空。在上例中,per_node.yaml 模板在所有 Compute 节点上运行(根据 OS::TripleO::ComputeExtraConfigPre hook),但只有有系统 UUID F5055C6C-477F-47FB-AFE5-95C6928C407F 接收 hieradata 的 Compute 节点。

这提供了一种根据特定要求定制每个节点的方法。

如需有关 NodeDataLookup 的更多信息,请参阅使用容器化 Red Hat Ceph 部署 Overcloud 指南中的配置 Ceph Storage 集群设置。