第 4 章 配置 Hook
配置 hook 提供了一种将您自己的配置功能注入 Overcloud 部署过程的方法。这包括在主 Overcloud 服务配置和 hook (包括基于 Puppet 的配置)前后注入自定义配置的 hook。
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 模板。