模块化配置文件

日期:

2015-05-08 00:00

标签:

配置, 配置文件, 模块化, 模块

模块化部署配置文件,以简化配置过程。

蓝图

https://blueprints.launchpad.net/openstack-ansible/+spec/modularize-config

问题描述

部署配置主要发生在相当单一的 openstack_user_config.yml 文件中。虽然向此文件添加文档可以帮助理解各个层级和选项,但它也会增加文件的大小和表观复杂度,尤其是在大型部署中。随着 swift 的添加,配置结构已经支持 conf.d 目录中的配置文件。将主要的单一配置文件拆分为包含类似组件的较小文件,有助于整体组织,尤其是在大型部署中。

提议的变更

类似于 swift,将配置文件的类似部分模块化,特别是 openstack_user_config.yml,拆分为 conf.d 目录中的以下单独文件。

  • hosts.yml

    • 包含针对目标主机的配置,以及简单的选项。例如,repo_hosts 通常仅包含主机列表。相比之下,storage_hosts 需要更多的选项,因此应使用单独的文件。

    • 包含以下层级

      • shared-infra_hosts

      • repo_hosts

      • os-infra_hosts

      • identity_hosts

      • network_hosts

      • compute_hosts

      • storage-infra_hosts

      • swift_proxy-hosts

      • log_hosts

    注意

    为了保持一致性,可以考虑将 swift_proxy-hosts 更改为 swift-proxy_hosts,并将 swift_hosts 更改为 swift-storage_hosts

  • networking.yml

    • 包含主机网络、库存生成器的 IP 地址黑名单、负载均衡器选项和提供商网络。

    • 包含以下层级

      • cidr_networks

      • used_ips

      • provider_networks (来自 global_overrides)

      • internal_lb_vip_addressexternal_lb_vip_addressmanagement_bridgetunnel_bridge (来自 global_overrides)

  • cinder_storage_hosts.yml

    • 包含 cinder 存储目标主机的配置,以及用于后端的高级选项。

    • 包含以下层级:* storage_hosts

  • swift_storage_hosts.yml

    • 包含 swift 存储目标主机的配置,以及高级选项。

    • 包含以下层级:* swift (来自 global_overrides) * swift_hosts

备选方案

使用不同的策略来模块化配置文件,或者保留现有的单一结构。

Playbook 影响

无。

升级影响

可以选择在升级到支持此规范的版本之前或之后,根据此规范模块化配置文件。

安全影响

无。

性能影响

无。

最终用户影响

无。

部署者影响

简化配置过程。

开发人员影响

开发人员应在添加或更改配置项时考虑模块化配置。

依赖项

无。

实现

负责人

主要负责人

<ionosphere80> Sam-I-Am

工作项

  • 根据需要,将现有的单一配置文件分解为包含相似项目组的较小文件,并将其放置在配置文件的结构内的 .d 目录中。

测试

  • 验证更改不会破坏 gating 过程。用于 gating 的 AIO 脚本可以继续使用单一文件或带有 .aio 扩展名的模块化文件。

文档影响

  • 更改引用单一配置文件的文档,以引用模块化配置文件。

参考资料

无。