6.14. 自定义 Overcloud 的预配置
Overcloud 使用 Puppet 进行 OpenStack 组件的核心配置。director 提供了一组在第一次引导完成后,核心配置开始前,提供自定义配置的资源。这些资源包括:
- OS::TripleO::ControllerExtraConfigPre
- 在核心 Puppet 配置前,应用到 Controller 节点上的额外配置。
- OS::TripleO::ComputeExtraConfigPre
- 在核心 Puppet 配置前,应用到 Controller 节点上的额外配置。
- OS::TripleO::CephStorageExtraConfigPre
- 在核心 Puppet 配置前,应用到 CephStorage 节点上的额外配置。
- OS::TripleO::NodeExtraConfig
- 在核心 Puppet 配置前,应用到所有节点角色上的额外配置。
在这个示例中,首先创建一个基本的 heat 模板(
/home/stack/templates/nameserver.yaml),它运行一个脚本来为每个节点的 resolv.conf 添加一个不同的名称解析服务器(nameserver)。
重要
server 参数是应用配置的服务器列表,它由父模板提供。这个参数在所有预配置模板中都是必需的。
接下来,创建一个环境文件(
/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 -e /home/stack/templates/pre_config.yaml
$ openstack overcloud deploy --templates -e /home/stack/templates/pre_config.yaml
这会在初始创建的主配置开始前,或以后的更新过程的主配置开始前,在所有节点中应用配置。
重要
您可以只把这些资源注册到一个 Heat 模板。以后的使用会覆盖 heat 模板来使用每个资源。