7.3. 配置和部署 overcloud
为 overcloud 置备网络资源和裸机节点后,您可以使用随 director 安装提供的未编辑 heat 模板文件以及您创建的任何自定义环境文件来配置 overcloud。完成 overcloud 的配置后,您可以部署 overcloud 环境。
一个基本的 overcloud 会使用本地 LVM 存储作为块存储,这种配置不受支持。红帽建议您使用外部存储解决方案(如 Red Hat Ceph Storage)进行块存储。
7.3.1. 先决条件 复制链接链接已复制到粘贴板!
- 您已置备了 overcloud 所需的网络资源和裸机节点。
7.3.2. 使用环境文件配置 overcloud 复制链接链接已复制到粘贴板!
undercloud 包括一组构成您的 overcloud 创建计划的 heat 模板。您可以使用环境文件来自定义 overcloud 的各个方面,这些文件是 YAML 格式的文件,其内容可覆盖核心 heat 模板集合中的参数和资源。您可以根据需要纳入多个环境文件。环境文件扩展名必须为 .yaml 或 .template。
红帽建议将自定义环境文件组织在一个单独目录中,比如 templates 目录。
使用 -e 选项,将环境文件包含在 overcloud 部署中。使用 -e 选项添加到 overcloud 的所有环境文件都会成为 overcloud 堆栈定义的一部分。环境文件的顺序非常重要,因为后续环境文件中定义的参数和资源具有优先权。
要在初始部署后修改 overcloud 配置,请执行以下操作:
- 修改定制环境文件和 heat 模板中的参数。
-
使用相同的环境文件再次运行
openstack overcloud deploy命令
不要直接编辑 overcloud 配置,因为 director 在更新 overcloud 栈时会覆盖任何手动配置。
Open Virtual Networking (OVN)是 Red Hat OpenStack Platform 17.1 中的默认网络机制驱动程序。如果要将 OVN 与分布式虚拟路由 (DVR) 搭配使用,则必须在 openstack overcloud deploy 命令中包含 environments/services/neutron-ovn-dvr-ha.yaml 文件。如果要在没有 DVR 的情况下使用 OVN,则必须在 openstack overcloud deploy 命令中包含 environment/services/neutron-ovn-ha.yaml 文件。
7.3.3. 创建 undercloud CA 信任的环境文件 复制链接链接已复制到粘贴板!
如果您的 undercloud 使用 TLS,而证书颁发机构 (CA) 未获得公开信任,可将此 CA 用于 undercloud 操作的 SSL 端点加密。为确保其余部署可以访问 undercloud 端点,请将您的 overcloud 节点配置成信任 undercloud CA。
要使这种方法奏效,overcloud 节点必须有一个指向 undercloud 公共端点的网络路由。依赖于脊叶型网络的部署可能必须应用这种配置。
有两种自定义证书可用于 undercloud:
-
用户提供的证书 - 当您自行提供证书时,会应用此定义。证书可能来自于您自己的 CA,也可能是自签名的。这通过使用
undercloud_service_certificate选项来传递。在这种情况下,您必须信任自签名证书,或 CA(具体取决于您的部署)。 -
自动生成的证书 - 当您通过
certmonger生成使用自己的本地 CA 的证书时,会应用此定义。使用undercloud.conf文件中的generate_service_certificate选项启用自动生成的证书。在这种情况下,director 在/etc/pki/ca-trust/source/anchors/cm-local-ca.pem生成 CA 证书,并配置 undercloud 的 HAProxy 实例以使用服务器证书。将 CA 证书添加到inject-trust-anchor-hiera.yaml文件中以将其呈现给 OpenStack Platform。
本例中使用了位于 /home/stack/ca.crt.pem 的一个自签名证书。如果您使用自动生成的证书,请改为使用 /etc/pki/ca-trust/source/anchors/cm-local-ca.pem。
步骤
打开证书文件,仅复制证书部分。不要包括其密钥:
vi /home/stack/ca.crt.pem
$ vi /home/stack/ca.crt.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您需要的证书部分与下方简写的示例类似:
-----BEGIN CERTIFICATE----- MIIDlTCCAn2gAwIBAgIJAOnPtx2hHEhrMA0GCSqGSIb3DQEBCwUAMGExCzAJBgNV BAYTAlVTMQswCQYDVQQIDAJOQzEQMA4GA1UEBwwHUmFsZWlnaDEQMA4GA1UECgwH UmVkIEhhdDELMAkGA1UECwwCUUUxFDASBgNVBAMMCzE5Mi4xNjguMC4yMB4XDTE3 -----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- MIIDlTCCAn2gAwIBAgIJAOnPtx2hHEhrMA0GCSqGSIb3DQEBCwUAMGExCzAJBgNV BAYTAlVTMQswCQYDVQQIDAJOQzEQMA4GA1UEBwwHUmFsZWlnaDEQMA4GA1UECgwH UmVkIEhhdDELMAkGA1UECwwCUUUxFDASBgNVBAMMCzE5Mi4xNjguMC4yMB4XDTE3 -----END CERTIFICATE-----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个名为
/home/stack/inject-trust-anchor-hiera.yaml的 YAML 文件,其包含下列内容以及您从 PEM 文件复制而来的证书:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意- 证书字符串必须采用 PEM 格式。
-
CAMap参数可能包含其他与 SSL/TLS 配置相关的证书。
-
将
/home/stack/inject-trust-anchor-hiera.yaml文件添加到部署命令中。在部署 overcloud 的过程中,director 将 CA 证书复制到每个 overcloud 节点。因此,每个节点都会信任 undercloud 的 SSL 端点提供的加密。
7.3.4. 在新部署中禁用 TSX 复制链接链接已复制到粘贴板!
从 Red Hat Enterprise Linux 8.3 开始,内核默认禁用对 Intel 事务同步扩展 (TSX)功能的支持。
您必须为新的 overcloud 显式禁用 TSX,除非您特别需要将其用于工作负载或第三方供应商。
在环境文件中设置 KernelArgs heat 参数。
parameter_defaults:
ComputeParameters:
KernelArgs: "tsx=off"
parameter_defaults:
ComputeParameters:
KernelArgs: "tsx=off"
在运行 openstack overcloud deploy 命令时包含该环境文件:
7.3.5. 验证 overcloud 配置 复制链接链接已复制到粘贴板!
在部署 overcloud 之前,请验证 heat 模板和环境文件。
由于对 17.0 中的 API 的更改,以下验证目前不稳定:
- switch-vlans
- network-environment
- dhcp-provisioning
- default-node-count
- node-disks
FAILED 验证不会阻止您部署或运行 Red Hat OpenStack Platform。但是,FAILED 验证可能会显示生产环境中潜在的问题。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用部署所需的所有环境文件更新 overcloud 堆栈:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选 :创建一个 YAML 文件,其中包含您要从验证运行中计算的任何验证:
<validation_name>: hosts: <targeted_hostname>
<validation_name>: hosts: <targeted_hostname>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 <
validation_name> 替换为您要从验证运行中排除的验证名称。 -
将
<targeted_hostname> 替换为包含验证的主机的名称。
-
将 <
验证您的 overcloud 堆栈:
validation run \ --group pre-deployment \ --inventory <inventory_file>
$ validation run \ --group pre-deployment \ --inventory <inventory_file> [--skiplist <validation_skips>]Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<inventory_file> 替换为 Ansible 清单文件的名称和位置,如~/tripleo-deploy/undercloud/tripleo-ansible-inventory.yaml。 将 <
validation_skips> 替换为包含验证运行中排除的 YAML 文件的名称和位置。注:
-
验证 run --group pre-deployment命令包括node-disks验证。由于一个已知问题,这个验证目前会失败。要避免这个问题,请将包含node-disks验证的yaml文件添加到验证run --group pre-deployment 命令中。 -
当您运行验证时,输出中的
Reasons列仅限于 79 个字符。要查看验证结果已满,请查看验证日志文件。
-
将
查看验证报告的结果:
validation history get [--full] [--validation-log-dir <log_dir>] <uuid>
$ validation history get [--full] [--validation-log-dir <log_dir>] <uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
可选: 使用
--full选项查看验证运行的详细输出。 -
可选: 使用
--validation-log-dir选项将验证运行的输出写入验证日志。 -
将
<uuid> 替换为验证运行的 UUID。
-
可选: 使用
7.3.6. 创建 overcloud 复制链接链接已复制到粘贴板!
创建 Red Hat OpenStack Platform (RHOSP) overcloud 环境的最后一个阶段是运行 openstack overcloud deploy 命令以创建 overcloud。有关 openstack overcloud deploy 命令可用选项的信息,请参阅 部署命令选项。
流程
更正 overcloud 环境所需的环境文件和配置文件,以及 director 安装提供的未编辑 heat 模板文件,以及您创建的自定义环境文件。这应该包括以下文件:
-
overcloud-baremetal-deployed.yaml节点定义文件。 -
overcloud-networks-deployed.yaml网络定义文件。 -
overcloud-vip-deployed.yaml网络 VIP 定义文件。 - 容器化 OpenStack 服务的容器镜像位置。
- 任何用于红帽 CDN 或 Satellite 注册的环境文件。
- 任何其它自定义环境文件。
-
- 按优先级顺序组织环境文件和配置文件,首先列出未编辑的 heat 模板文件,后跟包含自定义配置的环境文件,如 overrides to the default 属性。
构建
openstack overcloud deploy命令,按所需顺序指定配置文件和模板,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - -n /home/stack/templates/network_data.yaml
- 指定自定义网络配置。如果您使用网络隔离或自定义可组合网络,则需要此项。有关配置 overcloud 网络的详情,请参考 配置 overcloud 网络。
- -e /home/stack/containers-prepare-parameter.yaml
- 添加容器镜像准备环境文件。您在安装 undercloud 的过程中生成了此文件,可使用此文件创建 overcloud。
- -e /home/stack/inject-trust-anchor-hiera.yaml
- 添加用于在 undercloud 中安装自定义证书的环境文件。
- -r /home/stack/templates/roles_data.yaml
- 生成的角色数据。如果您使用自定义角色或要启用多架构云,请包含它。
overcloud 创建完毕后,director 会提供为配置 overcloud 而执行的 Ansible play 的总结:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 overcloud 创建完成后,director 会提供访问 overcloud 的详细信息:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您可以将部署命令保存在每次使用新的环境文件更新您的配置时添加到的文件中。
7.3.7. 部署命令选项 复制链接链接已复制到粘贴板!
下表列出 openstack overcloud deploy 命令的其他参数。
一些选项在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它们只应用于测试,不应在生产环境中使用。有关技术预览功能的更多信息,请参阅覆盖范围详细信息。
| 参数 | 描述 |
|---|---|
|
|
包含您要部署的 heat 模板的目录。如果为空,部署命令会使用位于 |
|
| 要创建或更新的堆栈的名称 |
|
| 以分钟为单位的部署超时持续时间 |
|
| 要用于虚拟机监控程序的虚拟化类型 |
|
|
要用于同步时间的网络时间协议 (NTP) 服务器。您也可以在以逗号分隔的列表中指定多个 NTP 服务器,例如: |
|
|
为环境变量 |
|
|
定义访问 overcloud 节点的 SSH 用户。SSH 访问通常通过 |
|
| 定义用于 SSH 访问 overcloud 节点的密钥路径。 |
|
| 定义要用于 SSH 访问 overcloud 节点的网络名称。 |
|
|
要传递给 overcloud 部署的额外环境文件。您可以多次指定此选项。请注意,传递到 |
|
| 包含要在部署中包括的环境文件的目录。部署命令以数字顺序,然后以字母顺序处理这些环境文件。 |
|
|
定义角色文件并覆盖 |
|
|
定义网络文件并覆盖 |
|
|
定义计划环境文件,并覆盖 |
|
| 如果您不希望在部署后删除临时文件,并记录其位置,则使用此选项。 |
|
| 如果您要在不执行实际部署的情况下更新计划,则使用此选项。 |
|
| overcloud 在创建过程中会执行一组部署前检查。如果部署前检查出现任何非严重错误,则此选项会退出创建。我们推荐使用此选项,因为任何错误都有可能造成部署失败。 |
|
| overcloud 在创建过程中会执行一组部署前检查。如果部署前检查出现任何非关键警告,则此选项会退出创建。openstack-tripleo-validations |
|
| 如果您要在不创建 overcloud 的情况下对 overcloud 执行验证检查,则使用此选项。 |
|
|
使用此选项从 |
|
| 使用此选项跳过 overcloud 部署后配置。 |
|
| 使用此选项强制进行 overcloud 部署后配置。 |
|
|
如果您不希望部署命令为 |
|
| 带有选项和参数的 YAML 文件的路径。 |
|
| 如果要禁用 overcloud 服务的密码生成,则使用此选项。 |
|
|
如果您要禁用 |
|
|
如果您要禁用 overcloud 栈创建,并仅运行 |
|
|
要用于保存 |
|
|
Ansible 配置文件的路径。该文件的配置会覆盖 |
|
|
您要用于 |
|
|
这个选项与以逗号分隔的节点列表一起使用,将 config-download playbook 执行限制为特定节点或一组节点。例如,当想要仅在新节点上运行 config-download 时, |
|
| (技术预览)将此选项与 config-download playbook 中的以逗号分隔的标签列表一起使用,通过一组特定 config-download 任务来运行部署。 |
|
| (技术预览)将此选项与您要从 config-download playbook 中跳过的以逗号分隔的标签列表一起使用。 |
运行以下命令查看完整选项列表:
(undercloud) $ openstack help overcloud deploy
(undercloud) $ openstack help overcloud deploy
某些命令行参数已过时或已弃用,它们的功能可以通过环境文件的 parameter_defaults 部分中所包含的 heat 模板参数实现。下表将已弃用的参数与 heat 模板中的等效参数对应了起来。
| 参数 | 描述 | Heat 模板参数 |
|---|---|---|
|
| overcloud 在创建过程中会执行一组部署前检查。在使用这个选项时,如果部署前检查出现任何严重错误,则会退出创建。我们推荐使用此选项,因为任何错误都有可能造成部署失败。 | 未进行参数映射 |
|
|
完全禁用部署前验证。这些验证是内置部署前验证,已由 | 未进行参数映射 |
|
|
使用 | 未进行参数映射 |
|
| 使用此选项把 overcloud 节点注册到客户门户或 Satellite 6。 |
|
|
|
使用此选项定义您要用于 overcloud 节点的注册方法。 |
|
|
| 要用于注册的组织。 |
|
|
| 使用此选项注册系统(即使已经注册过)。 |
|
|
|
注册 overcloud 节点的 Satellite 服务器的基本 URL。此参数需要使用 Satellite 的 HTTP URL 而不是 HTTPS URL。例如,使用 http://satellite.example.com 而不是 https://satellite.example.com。overcloud 的创建过程会使用此 URL 来确定服务器是 Red Hat Satellite 5 还是 Red Hat Satellite 6 服务器。如果服务器是 Red Hat Satellite 6 服务器,则 overcloud 获取 |
|
|
| 使用此选项定义您要用于注册的激活码。 |
|
这些参数计划从未来的 Red Hat OpenStack Platform 版本中移除。
7.3.8. 默认 overcloud 目录的内容 复制链接链接已复制到粘贴板!
在 RHOSP 17 中,您可以在单个目录中找到所有配置文件。目录的名称是所用 openstack 命令和堆栈名称的组合。目录具有默认位置,但您可以使用 --working-dir 选项更改默认位置。您可以将这个选项与读取或创建用于部署的文件的任何 tripleoclient 命令一起使用。
| 默认位置 | 命令 |
|---|---|
| $HOME/tripleo-deploy/undercloud |
|
| $HOME/tripleo-deploy/<stack> |
|
| $HOME/overcloud-deploy/<stack> |
|
下表详细介绍了 ~/overcloud-deploy/overcloud 目录中所含的文件和目录。
| 目录 | 描述 |
|---|---|
|
|
cli-config-download cli-enable-ssh-admin cli-grant-local-access cli-undercloud-get-horizon-url
|
|
|
|
|
|
包含使用 |
|
| 临时 Heat 工作目录包含临时 Heat 配置和数据库备份。 |
|
|
包含使用 |
|
|
包含保存的堆栈状态。其中 |
|
|
包含堆栈导出信息,使用 |
|
|
工作目录的 tarball,例如 |
|
|
包含堆栈密码。其中 |
|
|
使用 overcloud API 所需的凭据文件,如 |
|
| 包含 Tempest 配置。 |
|
| overcloud 的 Ansible 清单。 |
|
|
包含 rendered jinja2 模板的副本。您可以在 |
|
| 用于置备 overcloud 节点的裸机部署输入。 |
|
| 用于置备 overcloud 网络的网络部署输入。 |
|
|
使用 CLI 上的 |
|
| 用于置备 overcloud 网络 VIP 的 VIP 部署输入。 |
7.3.9. 验证 overcloud 部署 复制链接链接已复制到粘贴板!
验证您的部署的 overcloud。
先决条件
- 您已部署了 overcloud。
流程
查找
stackrc凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证您的 overcloud 部署:
validation run \ --group post-deployment \ [--inventory <inventory_file>]
$ validation run \ --group post-deployment \ [--inventory <inventory_file>]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<inventory_file> 替换为 ansible 清单文件的名称。默认情况下,动态清单名为tripleo-ansible-inventory。注意当您运行验证时,输出中的
Reasons列仅限于 79 个字符。要查看验证结果已满,请查看验证日志文件。
查看验证报告的结果:
validation history get --full <UUID>
$ validation history get --full <UUID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<UUID> 替换为验证运行的 UUID。 -
可选: 使用
--full选项查看验证运行的详细输出。
-
将
FAILED 验证不会阻止您部署或运行 Red Hat OpenStack Platform。但是,FAILED 验证可能会显示生产环境中潜在的问题。
7.3.10. 访问 overcloud 复制链接链接已复制到粘贴板!
director 生成一个凭据文件,其中包含从 undercloud 操作 overcloud 所需的凭据。director 将此文件保存为 stack 用户主目录的 overcloudrc 文件。
流程
获取
overcloudrc文件:source ~/overcloudrc
(undercloud)$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 命令提示符的变化表示您正在访问 overcloud:
(overcloud)$Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要返回与 undercloud 交互,请 source
stackrc文件:source ~/stackrc
(overcloud)$ source ~/stackrc (undercloud)$Copy to Clipboard Copied! Toggle word wrap Toggle overflow 命令提示符的变化表示您要访问 undercloud:
(undercloud)$Copy to Clipboard Copied! Toggle word wrap Toggle overflow