第 4 章 配置 hook
使用配置 hook 将您自己的自定义配置功能注入 overcloud 部署过程中。您可以创建 hook 在主 overcloud 服务配置之前和之后注入自定义配置,以及用于修改和包含基于 Puppet 的配置的 hook。
4.1. 第一次引导:自定义第一次引导配置 复制链接链接已复制到粘贴板!
director 使用 cloud-init
在初始创建 overcloud 后在所有节点上执行配置。您可以使用 NodeUserData
资源类型调用 cloud-init
。
- OS::TripleO::NodeUserData
-
应用到所有节点的
cloud-init
配置。 - OS::TripleO::Controller::NodeUserData
-
应用到 Controller 节点的
cloud-init
配置。 - OS::TripleO::Compute::NodeUserData
-
应用到 Compute 节点的
cloud-init
配置。 - OS::TripleO::CephStorage::NodeUserData
-
应用到 Ceph Storage 节点的
cloud-init
配置。 - OS::TripleO::ObjectStorage::NodeUserData
-
应用到 Object Storage 节点的
cloud-init
配置。 - OS::TripleO::BlockStorage::NodeUserData
-
应用到块存储节点的
cloud-init
配置。 - OS::TripleO::[ROLE]::NodeUserData
-
应用到自定义节点的
cloud-init
配置。将[ROLE]
替换为可组合角色名称。
在本例中,使用所有节点上的自定义 IP 地址更新名称服务器:
流程
创建一个基本的 heat 模板
~/templates/nameserver.yaml
,它将运行脚本,以在每个节点上附加带有特定名称服务器的resolv.conf
文件。您可以使用OS::TripleO::MultipartMime
资源类型来发送配置脚本。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个环境文件
~/templates/firstboot.yaml
,它将 heat 模板注册为OS::TripleO::NodeUserData
资源类型。resource_registry: OS::TripleO::NodeUserData: /home/stack/templates/nameserver.yaml
resource_registry: OS::TripleO::NodeUserData: /home/stack/templates/nameserver.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要在 overcloud 中添加第一次引导配置,请将环境文件添加到堆栈中,以及其他环境文件:
openstack overcloud deploy --templates \ ...
$ openstack overcloud deploy --templates \ ... -e /home/stack/templates/firstboot.yaml \ ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会在首次创建和第一次引导时将配置添加到所有节点中。后续包含这些模板(如更新 overcloud 堆栈)不会运行这些脚本。
您只能将 NodeUserData
资源注册到每个资源的一个 heat 模板中。后续用法会覆盖要使用的 heat 模板。