第 6 章 使用 director Operator 配置和部署 overcloud
在为 overcloud 置备虚拟和裸机节点后,您可以配置 overcloud 节点。您必须创建一个 OpenStackConfigGenerator
资源来生成 Ansible playbook,将节点注册到红帽客户门户网站或 Red Hat Satellite,然后创建一个 OpenStackDeploy
资源来将配置应用到节点。
6.1. 使用 OpenStackConfigGenerator CRD 创建用于 overcloud 配置的 Ansible playbook
置备 overcloud 基础架构后,您必须创建一组 Ansible playbook,以便在 overcloud 节点上配置 Red Hat OpenStack Platform (RHOSP)。您可以使用 OpenStackConfigGenerator
自定义资源定义(CRD)创建这些 playbook。OpenStackConfigGenerator
CRD 使用 RHOSP director config-download
功能将 heat 配置转换为 playbook。
使用以下命令查看 OpenStackConfigGenerator
CRD 定义和规格模式:
$ oc describe crd openstackconfiggenerator $ oc explain openstackconfiggenerator.spec
先决条件
-
您已创建了带有
OpenStackControlPlane
CRD 的 control plane。 -
已使用
OpenStackBarementalSets
CRD 创建 Compute 节点。 -
您已创建了包含自定义 heat 模板的
ConfigMap
对象。 -
您已创建了包含自定义环境文件的
ConfigMap
对象。
流程
在工作站上创建一个名为
openstack-config-generator.yaml
的文件。包含用于生成 Ansible playbook 的资源规格。以下示例定义了生成 playbook 的规格:apiVersion: osp-director.openstack.org/v1beta1 kind: OpenStackConfigGenerator metadata: name: default 1 namespace: openstack spec: enableFencing: true 2 gitSecret: git-secret 3 imageURL: registry.redhat.io/rhosp-rhel8/openstack-tripleoclient:17.1 heatEnvConfigMap: heat-env-config 4 # List of heat environment files to include from tripleo-heat-templates/environments heatEnvs: 5 - ssl/tls-endpoints-public-dns.yaml - ssl/enable-tls.yaml tarballConfigMap: tripleo-tarball-config 6
- 1
- 配置生成器的名称,
默认为
。 - 2
- 设置为
true
以启用自动创建所需的 heat 环境文件以启用隔离。生产环境 RHOSP 环境必须启用隔离。运行 Pacemaker 的虚拟机需要fence-agents-kubevirt
软件包。 - 3
- 设置为包含 Git 身份验证凭据的
ConfigMap
对象,默认为git-secret
。 - 4
- 默认情况下,包含自定义环境文件的
ConfigMap
对象(默认为heat-env-config
)。 - 5
tripleo-heat-templates/environments
目录中由 TripleO 提供的默认 heat 环境文件列表,用于生成 playbook。- 6
- 默认情况下,包含带有自定义 heat 模板的 tarball 的
ConfigMap
对象默认为tripleo-tarball-config
。
可选: 要更改
OpenStackConfigGenerator
CR 用来创建临时 heat 服务的容器镜像位置,请在openstack-config-generator.yaml
文件中添加以下配置:spec: ... ephemeralHeatSettings: heatAPIImageURL: <heat_api_image_location> heatEngineImageURL: <heat_engine_image_location> mariadbImageURL: <mariadb_image_location> rabbitImageURL: <rabbitmq_image_location>
-
将
<heat_api_image_location
> 替换为托管 heat API 镜像的目录的路径,openstack-heat-api
。 -
将
<heat_engine_image_location
> 替换为托管 heat 引擎镜像的目录的路径,即openstack-heat-engine
。 -
将
<mariadb_image_location
> 替换为托管 MariaDB 镜像的目录的路径,openstack-mariadb
。 -
将
<rabbitmq_image_location
> 替换为托管 RabbitMQ 镜像的目录的路径,openstack-rabbitmq
。
-
将
可选: 要在 debug 模式中为生成配置创建 Ansible playbook,请在
openstack-config-generator.yaml
文件中添加以下配置:spec: ... interactive: true
有关在交互模式中调试
OpenStackConfigGenerator
pod 的更多信息,请参阅 调试配置生成。-
保存
openstack-config-generator.yaml
文件。 创建 Ansible 配置生成器:
$ oc create -f openstack-config-generator.yaml -n openstack
验证是否已创建配置生成器的资源:
$ oc get openstackconfiggenerator/default -n openstack