Show Table of Contents
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)。
heat_template_version: 2014-10-16
description: >
Extra hostname configuration
parameters:
server:
type: string
nameserver_ip:
type: string
resources:
ExtraPreConfig:
type: OS::Heat::SoftwareConfig
properties:
group: script
config:
str_replace:
template: |
#!/bin/sh
echo "nameserver _NAMESERVER_IP_" >> /etc/resolv.conf
params:
_NAMESERVER_IP_: {get_param: nameserver_ip}
ExtraPreDeployment:
type: OS::Heat::SoftwareDeployment
properties:
config: {get_resource: ExtraPreConfig}
server: {get_param: server}
actions: ['CREATE','UPDATE']
outputs:
deploy_stdout:
description: Deployment reference, used to trigger pre-deploy on changes
value: {get_attr: [ExtraPreDeployment, deploy_stdout]}
重要
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
为了应用配置,在创建或更新 Overcloud 时把环境文件加入到栈。例如:
$ openstack overcloud deploy --templates -e /home/stack/templates/pre_config.yaml
这会在初始创建的主配置开始前,或以后的更新过程的主配置开始前,在所有节点中应用配置。
重要
您可以只把这些资源注册到一个 Heat 模板。以后的使用会覆盖 heat 模板来使用每个资源。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.