4.3. pre-Configuration:自定义所有 Overcloud 角色
Overcloud 使用 Puppet 作为 OpenStack 组件的核心配置。director 提供了一个 hook,用于在第一次引导完成后以及启动核心配置前配置所有节点类型:
- OS::TripleO::NodeExtraConfig
- 在核心 Puppet 配置之前,将额外的配置应用到所有节点角色。
在本例中,您首先创建一个基本的 heat 模板(/home/stack/templates/nameserver.yaml
),它将运行一个脚本,将每个节点的 resolv.conf
附加到变量名称服务器。
在本例中,Resources
部分包含以下内容:
- CustomExtraConfigPre
-
这定义了软件配置。在本例中,我们定义了 Bash
脚本
,Heat 将_NAMESERVER_IP_
替换为nameserver_ip
参数中存储的值。 - CustomExtraDeploymentPre
这会执行软件配置,这是来自
CustomExtraConfigPre
资源的软件配置。注意以下几点:-
配置参数引用
CustomExtraConfigPre
资源,因此 Heat 知道要应用的配置。 -
server
参数检索 Overcloud 节点的映射。此参数由父模板提供,是此 hook 模板中的强制要求。 -
actions
参数定义何时应用配置。在这种情况下,我们仅在创建或更新 Overcloud 时应用配置。可能的操作包括CREATE
、UPDATE
、DELETE
、SUSPEND
和RESUME
。 -
input_values
参数包含名为deploy_identifier
的子参数,用于存储父模板中的DeployIdentifier
。此参数为每个部署更新的资源提供时间戳。这可确保在后续的 overcloud 更新中资源恢复。
-
配置参数引用
接下来,创建一个环境文件(/home/stack/templates/pre_config.yaml
),将您的 heat 模板注册为 OS::TripleO::NodeExtraConfig
资源类型。
resource_registry: OS::TripleO::NodeExtraConfig: /home/stack/templates/nameserver.yaml parameter_defaults: nameserver_ip: 192.168.1.1
resource_registry:
OS::TripleO::NodeExtraConfig: /home/stack/templates/nameserver.yaml
parameter_defaults:
nameserver_ip: 192.168.1.1
要应用配置,请在创建或更新 Overcloud 时将环境文件添加到堆栈中,以及其他环境文件。例如:
openstack overcloud deploy --templates \ ...
$ openstack overcloud deploy --templates \
...
-e /home/stack/templates/pre_config.yaml \
...
这会在内核配置开始初始 Overcloud 创建或后续更新时,将配置应用到所有节点。
重要
您只能将 OS::TripleO::NodeExtraConfig
注册到一个 Heat 模板。后续使用会覆盖要使用的 Heat 模板。