11.3. 配置和部署 overcloud


为 overcloud 置备网络资源和裸机节点后,您可以使用 director 安装提供的未编辑 heat 模板文件以及您创建的任何自定义环境文件来配置 overcloud。完成 overcloud 的配置后,您可以部署 overcloud 环境。

重要

一个基本的 overcloud 会使用本地 LVM 存储作为块存储,这种配置不受支持。红帽建议您为块存储使用外部存储解决方案,如 Red Hat Ceph Storage。

11.3.1. 先决条件

  • 您已置备了 overcloud 所需的网络资源和裸机节点。

11.3.2. 使用环境文件配置 overcloud

undercloud 包括一组构成您的 overcloud 创建计划的 heat 模板。您可以使用环境文件来自定义 overcloud 的各个方面,这些文件是 YAML 格式的文件,其内容可覆盖核心 heat 模板集合中的参数和资源。您可以根据需要纳入多个环境文件。环境文件扩展名必须是 .yaml.template

红帽建议将自定义环境文件组织在一个单独目录中,比如 templates 目录。

您可以使用 -e 选项在 overcloud 部署中包括环境文件。使用 -e 选项添加到 overcloud 的所有环境文件都会成为 overcloud 堆栈定义的一部分。环境文件的顺序非常重要,因为后续环境文件中定义的参数和资源更为优先。

要在初始部署后修改 overcloud 配置,请执行以下操作:

  1. 修改定制环境文件和 heat 模板中的参数。
  2. 使用相同的环境文件再次运行 openstack overcloud deploy 命令

不要直接编辑 overcloud 配置,因为 director 在更新 overcloud 栈时会覆盖任何手动配置。

注意

Open Virtual Networking (OVN)是 Red Hat OpenStack Platform 17.0 中的默认网络机制驱动程序。如果要将 OVN 与分布式虚拟路由 (DVR) 搭配使用,则必须在 openstack overcloud deploy 命令中包含 environments/services/neutron-ovn-dvr-ha.yaml 文件。如果要在没有 DVR 的情况下使用 OVN,则必须在 openstack overcloud deploy 命令中包含 environment/services/neutron-ovn-ha.yaml 文件。

11.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

步骤

  1. 打开证书文件,仅复制证书部分。不要包括其密钥:

    $ vi /home/stack/ca.crt.pem

    您需要的证书部分与下方简写的示例类似:

    -----BEGIN CERTIFICATE-----
    MIIDlTCCAn2gAwIBAgIJAOnPtx2hHEhrMA0GCSqGSIb3DQEBCwUAMGExCzAJBgNV
    BAYTAlVTMQswCQYDVQQIDAJOQzEQMA4GA1UEBwwHUmFsZWlnaDEQMA4GA1UECgwH
    UmVkIEhhdDELMAkGA1UECwwCUUUxFDASBgNVBAMMCzE5Mi4xNjguMC4yMB4XDTE3
    -----END CERTIFICATE-----
  2. 创建一个名为 /home/stack/inject-trust-anchor-hiera.yaml 的 YAML 文件,其包含下列内容以及您从 PEM 文件复制而来的证书:

    parameter_defaults:
      CAMap:
        undercloud-ca:
          content: |
            -----BEGIN CERTIFICATE-----
            MIIDlTCCAn2gAwIBAgIJAOnPtx2hHEhrMA0GCSqGSIb3DQEBCwUAMGExCzAJBgNV
            BAYTAlVTMQswCQYDVQQIDAJOQzEQMA4GA1UEBwwHUmFsZWlnaDEQMA4GA1UECgwH
            UmVkIEhhdDELMAkGA1UECwwCUUUxFDASBgNVBAMMCzE5Mi4xNjguMC4yMB4XDTE3
            -----END CERTIFICATE-----
    注意
    • 证书字符串必须采用 PEM 格式。
    • CAMap 参数可能包含其他与 SSL/TLS 配置相关的证书。
  3. /home/stack/inject-trust-anchor-hiera.yaml 文件添加到部署命令中。在部署 overcloud 的过程中,director 将 CA 证书复制到每个 overcloud 节点。因此,每个节点都会信任 undercloud 的 SSL 端点提供的加密。

11.3.4. 在新部署中禁用 TSX

从 Red Hat Enterprise Linux 8.3 开始,内核默认禁用对 Intel 事务同步扩展 (TSX)功能的支持。

您必须为新的 overcloud 显式禁用 TSX,除非您特别需要将其用于工作负载或第三方供应商。

在环境文件中设置 KernelArgs heat 参数。

parameter_defaults:
    ComputeParameters:
       KernelArgs: "tsx=off"

在运行 openstack overcloud deploy 命令时包含该环境文件:

11.3.5. 验证 overcloud 配置

在部署 overcloud 之前,请验证您的 heat 模板和环境文件。

重要
  • 由于对 17.0 中的 API 的更改,以下验证目前不稳定:

    • switch-vlans
    • network-environment
    • dhcp-provisioning
  • FAILED 验证不会阻止您部署或运行 Red Hat OpenStack Platform。但是,FAILED 验证可能会显示生产环境中潜在的问题。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
  3. 使用部署所需的所有环境文件更新 overcloud 堆栈:

    $ openstack overcloud deploy --templates \
      -e environment-file1.yaml \
      -e environment-file2.yaml \
      ...
      --stack-only
  4. 验证您的 overcloud 堆栈:

    $ validation run \
      --group pre-deployment \
      --inventory <inventory_file>
    • <inventory_file > 替换为 Ansible 清单文件的名称和位置,如 ~/tripleo-deploy/undercloud/tripleo-ansible-inventory.yaml
    注意

    当您运行验证时,输出中的 Reasons 列仅限于 79 个字符。要查看验证结果已满,请查看验证日志文件。

  5. 查看验证报告的结果:

    $ validation history get [--full] [--validation-log-dir <log_dir>] <uuid>
    • 可选: 使用 --full 选项查看验证运行中的详细输出。
    • 可选: 使用 --validation-log-dir 选项将验证运行的输出写入验证日志。
    • <uuid > 替换为验证运行的 UUID。

11.3.6. 创建 overcloud

创建 Red Hat OpenStack Platform (RHOSP) overcloud 环境的最后一个阶段是运行 openstack overcloud deploy 命令以创建 overcloud。有关可用于 openstack overcloud deploy 命令的选项的信息,请参阅 部署命令选项

流程

  1. 收集 overcloud 环境所需的环境文件和配置文件,以及 director 安装提供的未编辑 heat 模板文件,以及您创建的自定义环境文件。这应该包括以下文件:

    • overcloud-baremetal-deployed.yaml 节点定义文件。
    • overcloud-networks-deployed.yaml 网络定义文件。
    • overcloud-vip-deployed.yaml 网络 VIP 定义文件。
    • 容器化 OpenStack 服务的容器镜像位置。
    • 任何用于红帽 CDN 或 Satellite 注册的环境文件。
    • 任何其它自定义环境文件。
  2. 按照优先级顺序组织环境文件,首先列出未编辑的 heat 模板文件,后跟包含自定义配置的环境文件,如覆盖默认属性。
  3. 构建 openstack overcloud deploy 命令,按所需顺序指定配置文件和模板,例如:

    (undercloud) $ openstack overcloud deploy --templates \
     [-n /home/stack/templates/network_data.yaml \ ]
      -e /home/stack/templates/overcloud-baremetal-deployed.yaml\
      -e /home/stack/templates/overcloud-networks-deployed.yaml\
      -e /home/stack/templates/overcloud-vip-deployed.yaml \
      -e /home/stack/containers-prepare-parameter.yaml \
      -e /home/stack/inject-trust-anchor-hiera.yaml \
     [-r /home/stack/templates/roles_data.yaml ]
    -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
    如果使用自定义角色或想要启用多架构云,则生成的角色数据。
  4. overcloud 创建完毕后,director 会提供为配置 overcloud 而执行的 Ansible play 的总结:

    PLAY RECAP *************************************************************
    overcloud-compute-0     : ok=160  changed=67   unreachable=0    failed=0
    overcloud-controller-0  : ok=210  changed=93   unreachable=0    failed=0
    undercloud              : ok=10   changed=7    unreachable=0    failed=0
    
    Tuesday 15 October 2018  18:30:57 +1000 (0:00:00.107) 1:06:37.514 ******
    ========================================================================
  5. overcloud 创建完成后,director 提供了访问 overcloud 的详细信息:

    Ansible passed.
    Overcloud configuration completed.
    Overcloud Endpoint: http://192.168.24.113:5000
    Overcloud Horizon Dashboard URL: http://192.168.24.113:80/dashboard
    Overcloud rc file: /home/stack/overcloudrc
    Overcloud Deployed
提示

您可以将部署命令保留在每次使用新的 env 文件更新配置时添加到的文件中。

11.3.7. 部署命令选项

下表列出 openstack overcloud deploy 命令的其他参数。

重要

一些选项在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它们只应用于测试,不应在生产环境中使用。有关技术预览功能的更多信息,请参阅覆盖范围详细信息

表 11.8. 部署命令选项
参数描述

--templates [TEMPLATES]

包含您要部署的 heat 模板的目录。如果为空,部署命令会使用位于 /usr/share/openstack-tripleo-heat-templates/ 的默认模板。

--stack STACK

要创建或更新的堆栈的名称

-t [TIMEOUT]--timeout [TIMEOUT]

以分钟为单位的部署超时持续时间

--libvirt-type [LIBVIRT_TYPE]

要用于虚拟机监控程序的虚拟化类型

--ntp-server [NTP_SERVER]

要用于同步时间的网络时间协议 (NTP) 服务器。您也可以在以逗号分隔的列表中指定多个 NTP 服务器,例如:--ntp-server 0.centos.pool.org,1.centos.pool.org。对于高可用性集群部署,重要的是各个 Controller 节点始终引用同一时间源。但请注意,通常的环境可能已经指定了符合公认规范的 NTP 时间源。

--no-proxy [NO_PROXY]

为环境变量 no_proxy 指定自定义值。 这个环境变量被用来在代理通信中排除特定的主机名。

--overcloud-ssh-user OVERCLOUD_SSH_USER

定义访问 overcloud 节点的 SSH 用户。SSH 访问通常通过 tripleo-admin 用户进行。

--overcloud-ssh-key OVERCLOUD_SSH_KEY

定义用于 SSH 访问 overcloud 节点的密钥路径。

--overcloud-ssh-network OVERCLOUD_SSH_NETWORK

定义要用于 SSH 访问 overcloud 节点的网络名称。

-e [EXTRA HEAT TEMPLATE], --environment-file [ENVIRONMENT FILE]

要传递给 overcloud 部署的额外环境文件。您可以多次指定此选项。请注意,传递到 openstack overcloud deploy 命令的环境文件顺序是非常重要的。例如,如果一个参数在多个环境文件中出现,则后续环境文件中的参数将覆盖前面文件中的同一参数。

--environment-directory

包含要在部署中包括的环境文件的目录。部署命令以数字顺序,然后以字母顺序处理这些环境文件。

-r ROLES_FILE

定义角色文件并覆盖 --templates 目录里的默认 roles_data.yaml 。文件位置可以是绝对路径或者相对于 --templates 的路径。

-n NETWORKS_FILE

定义网络文件并覆盖 --templates 目录里的默认 network_data.yaml。文件位置可以是绝对路径或者相对于 --templates 的路径。

-p PLAN_ENVIRONMENT_FILE

定义计划环境文件,并覆盖 --templates 目录里的默认 plan-environment.yaml 。文件位置可以是绝对路径或者相对于 --templates 的路径。

--no-cleanup

如果您不希望在部署后删除临时文件,并记录其位置,则使用此选项。

--update-plan-only

如果您要在不执行实际部署的情况下更新计划,则使用此选项。

--validation-errors-nonfatal

overcloud 在创建过程中会执行一组部署前检查。如果部署前检查出现任何非严重错误,则此选项会退出创建。我们推荐使用此选项,因为任何错误都有可能造成部署失败。

--validation-warnings-fatal

overcloud 在创建过程中会执行一组部署前检查。如果部署前检查出现任何非关键警告,则此选项会退出创建。openstack-tripleo-validations

--dry-run

如果您要在不创建 overcloud 的情况下对 overcloud 执行验证检查,则使用此选项。

--run-validations

使用此选项从 openstack-tripleo-validations 软件包运行外部验证。

--skip-postconfig

使用此选项跳过 overcloud 部署后配置。

--force-postconfig

使用此选项强制进行 overcloud 部署后配置。

--skip-deploy-identifier

如果您不希望部署命令为 DeployIdentifier 参数生成唯一标识符,则使用此选项。软件配置部署步骤仅当配置发生实际更改时才会触发。使用此选项要非常谨慎,仅当您确信不需要运行软件配置(如扩展某些角色)时方可使用。

--answers-file ANSWERS_FILE

带有选项和参数的 YAML 文件的路径。

--disable-password-generation

如果要禁用 overcloud 服务的密码生成,则使用此选项。

--deployed-server

如果要部署预置备 overcloud 节点,则使用此选项。与 --disable-validations 结合使用。

--no-config-download, --stack-only

如果您要禁用 config-download 工作流,仅创建堆栈和相关 OpenStack 资源,则使用此选项。此命令不会对 overcloud 应用软件配置。

--config-download-only

如果您要禁用 overcloud 栈创建,并仅运行 config-download 工作流以应用软件配置,则使用此选项。

--output-dir OUTPUT_DIR

要用于保存 config-download 输出的目录。该目录必须可由 mistral 用户写入。如果没有指定,director 将使用默认值,即 /var/lib/mistral/overcloud

--override-ansible-cfg OVERRIDE_ANSIBLE_CFG

Ansible 配置文件的路径。该文件的配置会覆盖 config-download 默认生成的所有配置。

--config-download-timeout CONFIG_DOWNLOAD_TIMEOUT

您要用于 config-download 步骤的超时持续时间(以分钟为单位)。如果未设置,director 会在堆栈部署操作后将默认值设置为从 --timeout 参数中保留的时间。

--limit NODE1,NODE2

(技术预览)将此选项与以逗号分隔的节点列表一起使用,将 config-download playbook 的执行限制在特定节点或一组节点。例如,当想要仅在新节点上运行 config-download 时,--limit 选项对扩展操作很有用。此参数可能会导致在主机间实时迁移实例失败,请参阅使用 ansible-playbook-command.sh 脚本运行 config-download

--tags TAG1,TAG2

(技术预览)将此选项与 config-download playbook 中的以逗号分隔的标签列表一起使用,通过一组特定 config-download 任务来运行部署。

--skip-tags TAG1,TAG2

(技术预览)将此选项与您要从 config-download playbook 中跳过的以逗号分隔的标签列表一起使用。

运行以下命令查看完整选项列表:

(undercloud) $ openstack help overcloud deploy

某些命令行参数已过时或已弃用,它们的功能可以通过环境文件的 parameter_defaults 部分中所包含的 heat 模板参数实现。下表将已弃用的参数与 heat 模板中的等效参数对应了起来。

表 11.9. 将被弃用的 CLI 参数映射到 heat 模板参数
参数描述Heat 模板参数

--control-scale

扩展的 Controller 节点数量

ControllerCount

--compute-scale

扩展的 Compute 节点数量

ComputeCount

--ceph-storage-scale

扩展的 Ceph 节点数量

CephStorageCount

--block-storage-scale

扩展的 Block Storage (cinder) 节点数量

BlockStorageCount

--swift-storage-scale

扩展的 Object Storage (swift) 节点数量

ObjectStorageCount

--control-flavor

要用于 Controller 节点的 flavor

OvercloudControllerFlavor

--compute-flavor

要用于 Compute 节点的 flavor

OvercloudComputeFlavor

--ceph-storage-flavor

要用于 Ceph Storage 节点的 flavor

OvercloudCephStorageFlavor

--block-storage-flavor

要用于 Block Storage (cinder) 节点的 flavor

OvercloudBlockStorageFlavor

--swift-storage-flavor

要用于 Object Storage (swift) 节点的 flavor

OvercloudSwiftStorageFlavor

--validation-errors-fatal

overcloud 在创建过程中会执行一组部署前检查。在使用这个选项时,如果部署前检查出现任何严重错误,则会退出创建。我们推荐使用此选项,因为任何错误都有可能造成部署失败。

未进行参数映射

--disable-validations

完全禁用部署前验证。这些验证是内置部署前验证,已由 openstack-tripleo-validations 软件包中的外部验证替代。

未进行参数映射

--config-download

使用 config-download 机制运行部署。现在这是默认选项,以后可以删除该 CLI 选项。

未进行参数映射

--rhel-reg

使用此选项把 overcloud 节点注册到客户门户或 Satellite 6。

RhsmVars

--reg-method

使用此选项定义您要用于 overcloud 节点的注册方法。satellite 代表 Red Hat Satellite 6 或 Red Hat Satellite 5,portal 代表客户门户(Customer Portal)。

RhsmVars

--reg-org [REG_ORG]

要用于注册的组织。

RhsmVars

--reg-force

使用此选项注册系统(即使已经注册过)。

RhsmVars

--reg-sat-url [REG_SAT_URL]

注册 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 获取 katello-ca-consumer-latest.noarch.rpm 文件,使用 subscription-manager 注册,并安装 katello-agent。如果服务器是 Red Hat Satellite 5 服务器,则 overcloud 获取 RHN-ORG-TRUSTED-SSL-CERT 文件并使用 rhnreg_ks 注册。

RhsmVars

--reg-activation-key [REG_ACTIVATION_KEY]

使用此选项定义您要用于注册的激活码。

RhsmVars

这些参数计划从未来的 Red Hat OpenStack Platform 版本中移除。

11.3.8. 验证 overcloud 部署

验证部署的 overcloud。

先决条件

  • 您已部署了 overcloud。

流程

  1. 查找 stackrc 凭证文件:

    $ source ~/stackrc
  2. 验证 overcloud 部署:

    $ validation run \
      --group post-deployment \
      [--inventory <inventory_file>]
    • <inventory_file > 替换为 ansible 清单文件的名称。默认情况下,动态清单名为 tripleo-ansible-inventory

      注意

      当您运行验证时,输出中的 Reasons 列仅限于 79 个字符。要查看验证结果已满,请查看验证日志文件。

  3. 查看验证报告的结果:

    $ validation show run [--full] <UUID>
    • <UUID > 替换为验证运行的 UUID。
    • 可选: 使用 --full 选项查看验证运行中的详细输出。
重要

FAILED 验证不会阻止您部署或运行 Red Hat OpenStack Platform。但是,FAILED 验证可能会显示生产环境中潜在的问题。

额外的资源

11.3.9. 访问 overcloud

director 生成凭据文件,其中包含从 undercloud 操作 overcloud 所需的凭据。director 将此文件保存为 stack 用户主目录的 overcloudrc 文件。

流程

  1. 获取 overcloudrc 文件:

    (undercloud)$ source ~/overcloudrc

    命令提示符更改以表示您正在访问 overcloud:

    (overcloud)$
  2. 要返回与 undercloud 交互,请提供 stackrc 文件:

    (overcloud)$ source ~/stackrc
    (undercloud)$

    命令提示符更改以表示您正在访问 undercloud:

    (undercloud)$
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.