4.6. puppet:为单个节点自定义 hieradata

您可以使用 heat 模板集合为单个节点设置 Puppet hieradata:

流程

  1. 从节点的内省数据中识别系统 UUID:

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

    这个命令返回一个系统 UUID。例如:

    "f5055c6c-477f-47fb-afe5-95c6928c407f"
  2. 创建一个环境文件来定义特定于节点的 hieradata,并将 per_node.yaml 模板注册到预先配置 hook。在 NodeDataLookup 参数中包含您要配置的节点的系统 UUID:

    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" ]}}'
  3. 将此环境文件包含在 openstack overcloud deploy 命令中,以及与部署相关的任何其他环境文件。

per_node.yaml 模板在节点上生成一组与每个系统 UUID 对应的 hieradata 文件,并包含您定义的 hieradata。如果没有定义 UUID,则生成的 hieradata 文件为空。在本例中,per_node.yaml 模板在所有 Compute 节点上运行,由 OS::TripleO::ComputeExtraConfigPre hook 定义,但只有具有系统 UUID f5055c6c-477f-47fb-afe5-95c6928c407f 接收 hieradata 的 Compute 节点。

您可以使用此机制来根据特定要求对每个节点进行定制。

有关 NodeDataLookup 的更多信息,请参阅 Deploying an overcloud with containerized Red Hat Ceph 指南中的 Altering the disk layout in Ceph Storage nodes