2.4. 在 Overcloud 创建中包含环境文件
部署命令(openstack overcloud deploy)使用 -e 选项包含一个环境文件来自定义 Overcloud。您可以根据需要纳入多个环境文件。但是,环境文件的顺序非常重要,因为后续环境文件中定义的参数和资源更为优先。例如,您可能有两个环境文件:
environment-file-1.yaml
environment-file-2.yaml
resource_registry: OS::TripleO::NodeExtraConfigPost: /home/stack/templates/template-2.yaml parameter_defaults: TimeZone: 'Hongkong'
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
$ openstack overcloud deploy --templates -e environment-file-1.yaml -e environment-file-2.yaml
在本例中,两个环境文件都包含一个通用资源类型(OS::TripleO::NodeExtraConfigPost)和通用参数(TimeZone)。openstack overcloud deploy 命令通过以下流程运行:
-
根据
--template选项,从核心 Heat 模板集合加载默认配置。 -
应用
environment-file-1.yaml的配置,这将覆盖默认配置中的任何通用设置。 -
应用
environment-file-2.yaml的配置,它会覆盖默认配置和environment-file-1.yaml中的任何通用设置。
这会导致对 Overcloud 的默认配置进行了以下更改:
-
OS::TripleO::NodeExtraConfigPost资源设置为每个environment-file-2.yaml的/home/stack/templates/template-2.yaml。 -
timezone参数设置为 perenvironment-file-2.yaml。 -
RabbitFDLimit参数被设置为65536,作为每个环境文件-1.yaml。environment-file-2.yaml不会更改此值。
这提供了一种方式,可将自定义配置定义为 Overcloud,而不定义来自多个环境文件的值。