10.2. Heat 参数
director 模板集合中的每个 heat 模板都包含一个 parameters
部分。本节包含特定于特定 overcloud 服务的所有参数的定义。这包括以下内容:
-
overcloud.j2.yaml
- 默认基本参数 -
roles_data.yaml
- 可组合角色的默认参数 -
deploymentAttr.yaml
- 特定服务的默认参数
您可以使用以下方法修改这些参数的值:
- 为您的自定义参数创建一个环境文件。
-
在环境文件的
parameter_defaults
部分中包含您的自定义参数。 -
使用
openstack overcloud deploy
命令包含环境文件。
10.2.1. 示例 1:配置时区
用于设置时区的 Heat 模板(puppet/services/time/timezone.yaml
)包含 TimeZone
参数。如果将 TimeZone
参数留空,overcloud 会将时间设置为 UTC
作为默认值。
要获取时区列表,请运行 timedatectl list-timezones
命令。以下示例命令检索 Asia 的时区:
$ sudo timedatectl list-timezones|grep "Asia"
在识别您的时区后,在环境文件中设置 TimeZone 参数。以下示例环境文件将 TimeZone 的值设置为 Asia/Tokyo :
parameter_defaults: TimeZone: 'Asia/Tokyo'
10.2.2. 示例 2:配置 RabbitMQ 文件描述符限制
对于某些配置,您可能需要提高 RabbitMQ 服务器的文件描述符限制。使用 deployment/rabbitmq/rabbitmq-container-puppet.yaml
heat 模板在 RabbitFDLimit
参数中设置新限制。在环境文件中添加以下条目:
parameter_defaults: RabbitFDLimit: 65536
10.2.3. 示例 3:启用和禁用参数
您可能需要在部署期间初始设置参数,然后禁用用于将来的部署操作的参数,如更新或扩展操作。例如,要在 overcloud 创建过程中包含自定义 RPM,请在环境文件中包含以下条目:
parameter_defaults: DeployArtifactURLs: ["http://www.example.com/myfile.rpm"]
要从未来的部署中禁用此参数,无法删除该参数。相反,您必须将参数设置为空值:
parameter_defaults: DeployArtifactURLs: []
这可确保不再为后续部署操作设置该参数。
10.2.4. 示例 4:基于角色的参数
使用 [ROLE]Parameters
参数,将 [ROLE]
替换为可组合角色,以为特定角色设置参数。
例如,director 在 Controller 和 Compute 节点上配置 sshd
。要为 Controller 和 Compute 节点设置不同的 sshd
参数,请创建一个环境文件,其中包含 ControllerParameters
和 ComputeParameters
参数,并为每个特定的角色设置 sshd
参数:
parameter_defaults: ControllerParameters: BannerText: "This is a Controller node" ComputeParameters: BannerText: "This is a Compute node"
10.2.5. 识别您要修改的参数
Red Hat OpenStack Platform director 为配置提供了许多参数。在某些情况下,您可能会遇到识别您要配置的特定选项以及对应的 director 参数的难度。如果有一个选项您要使用 director 配置,请使用以下工作流来识别选项并将其映射到特定的 overcloud 参数:
- 确定您要配置的选项。记录下使用 选项的服务。
为此选项检查对应的 Puppet 模块。Red Hat OpenStack Platform 的 Puppet 模块位于 director 节点上的
/etc/puppet/modules
下。每个模块对应于特定的服务。例如,keystone
模块对应于 OpenStack Identity (keystone)。- 如果 Puppet 模块包含控制所选选项的变量,请继续下一步。
- 如果 Puppet 模块不包含控制所选选项的变量,则此选项不存在 hieradata。如果可能,您可以在 overcloud 完成部署后手动设置选项。
以 hieradata 的形式检查 Puppet 变量的核心 heat 模板集合。
deployment
Attr 中的模板通常与同一服务的 Puppet 模块对应。例如,deployment/keystone/keystone-container-puppet.yaml
模板为keystone
模块提供 hieradata。- 如果 heat 模板为 Puppet 变量设置 hieradata,该模板也应披露您可以修改的基于 director 的参数。
- 如果 heat 模板没有为 Puppet 变量设置 hieradata,请使用配置 hook 来使用环境文件传递 hieradata。有关自定义 hieradata 的更多信息,请参阅 第 10.3.4 节 “puppet:为角色自定义 hieradata”。
流程
要更改 OpenStack Identity (keystone)的通知格式,请使用工作流并完成以下步骤:
-
识别您要配置的 OpenStack 参数(
notification_format
)。 在
keystone
Puppet 模块中搜索notification_format
设置:$ grep notification_format /etc/puppet/modules/keystone/manifests/*
在这种情况下,
keystone
模块使用keystone::notification_format
变量管理这个选项。为这个变量搜索
keystone
服务模板:$ grep "keystone::notification_format" /usr/share/openstack-tripleo-heat-templates/deployment/keystone/keystone-container-puppet.yaml
输出显示 director 使用
KeystoneNotificationFormat
参数来设置keystone::notification_format
hieradata。
-
识别您要配置的 OpenStack 参数(
下表显示了最终映射:
director 参数 | Puppet hieradata | OpenStack Identity (keystone)选项 |
---|---|---|
|
|
|
您可以在 overcloud 环境文件中设置 KeystoneNotificationFormat
,然后在 overcloud 配置期间设置 keystone.conf
文件中的 notification_format
选项。