第 4 章 配置 Hook
配置 hook 提供了将您自己的配置功能注入 Overcloud 部署过程的方法。这包括用于在主 Overcloud 服务配置和 hook 之前和之后注入自定义配置的 hook,用于修改和包含基于 Puppet 的配置。
4.1. 首次启动:自定义第一个引导配置
director 提供了在 Overcloud 初始创建时在所有节点上执行配置的机制。director 通过 cloud-init
实现这一点,您可以使用 OS::TripleO::NodeUserData
资源类型来调用。
在本例中,您将使用所有节点上的自定义 IP 地址更新名称服务器。您必须首先创建一个基本的 heat 模板(/home/stack/templates/nameserver.yaml
),运行脚本来附加每个节点的 resolv.conf
及特定名称服务器。您可以使用 OS::TripleO::MultipartMime
资源类型发送配置脚本。
heat_template_version: 2014-10-16 description: > Extra hostname configuration resources: userdata: type: OS::Heat::MultipartMime properties: parts: - config: {get_resource: nameserver_config} nameserver_config: type: OS::Heat::SoftwareConfig properties: config: | #!/bin/bash echo "nameserver 192.168.1.1" >> /etc/resolv.conf outputs: OS::stack_id: value: {get_resource: userdata}
接下来,创建一个环境文件(/home/stack/templates/firstboot.yaml
),将 heat 模板注册为 OS::TripleO::NodeUserData
资源类型。
resource_registry: OS::TripleO::NodeUserData: /home/stack/templates/nameserver.yaml
要添加第一个启动配置,请在首次创建 Overcloud 时将环境文件添加到堆栈中,以及其他环境文件。例如:
$ openstack overcloud deploy --templates \ ... -e /home/stack/templates/firstboot.yaml \ ...
-e
将环境文件应用到 Overcloud 堆栈。
这会在首次创建和第一次引导时向所有节点添加配置。后续包含这些模板(如更新 Overcloud 堆栈)不会运行这些脚本。
您只能将 OS::TripleO::NodeUserData
注册到一个 heat 模板。后续用法会覆盖要使用的 heat 模板。