Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

2.6. 在 Overcloud 创建中包含环境文件

部署命令(openstack overcloud deploy)使用 -e 选项包括环境文件来自定义 Overcloud。您可以根据需要纳入多个环境文件。但是,环境文件的顺序非常重要,因为后续环境文件中定义的参数和资源更为优先。例如,您可能有两个环境文件:

environment-file-1.yaml

resource_registry:
  OS::TripleO::NodeExtraConfigPost: /home/stack/templates/template-1.yaml

parameter_defaults:
  RabbitFDLimit: 65536
  TimeZone: 'Japan'

environment-file-2.yaml

resource_registry:
  OS::TripleO::NodeExtraConfigPost: /home/stack/templates/template-2.yaml

parameter_defaults:
  TimeZone: 'Hongkong'

然后,使用包括的两个环境文件进行部署:

$ openstack overcloud deploy --templates -e environment-file-1.yaml -e environment-file-2.yaml

在本例中,两个环境文件都包含通用资源类型(OS::TripleO::NodeExtraConfigPost)和通用参数(TimeZone)。openstack overcloud deploy 命令通过以下进程运行:

  1. 根据 --template 选项,从核心 Heat 模板集合中加载默认配置。
  2. environment-file-1.yaml 应用配置,这将覆盖默认配置中的任何常见设置。
  3. 应用 environment-file-2.yaml 的配置,它会覆盖默认配置和 environment-file-1.yaml 中的任何常见设置。

这会对 Overcloud 的默认配置进行以下更改:

  • OS::TripleO::NodeExtraConfigPost 资源设置为 /home/stack/templates/template-2.yaml,因为 environment-file-2.yaml
  • timezone 参数设为 Hongkong,因为 environment-file-2.yaml
  • RabbitFDLimit 参数根据 environment-file-1.yaml 被设置为 65536environment-file-2.yaml 不会更改这个值。

这提供了一种从多个环境文件冲突地定义自定义配置到 Overcloud 的方法。