7.2. 启动 overcloud 部署


注意

在 undercloud 安装过程中,在 undercloud.conf 文件中设置 generate_service_certificate=false。否则,在部署 overcloud 时您必须注入信任定位符,如 高级 Overcloud 自定义指南中的 Overcloud Public Endpoints 上启用 SSL/TLS 所述。

备注
如果要在 overcloud 部署期间添加 Ceph 控制面板,请参阅 第 8 章 将 Red Hat Ceph Storage Dashboard 添加到 overcloud 部署中

创建 overcloud 需要 openstack overcloud deploy 命令的额外参数。例如:

$ openstack overcloud deploy --templates -r /home/stack/templates/roles_data_custom.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-rgw.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-mds.yaml
  -e /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml \
  -e /home/stack/templates/storage-config.yaml \
  -e /home/stack/templates/ceph-config.yaml \
  --ntp-server pool.ntp.org
Copy to Clipboard Toggle word wrap

以上命令使用以下选项:

  • --templates - 从默认的 Heat 模板集合创建 Overcloud (即 /usr/share/openstack-tripleo-heat-templates/)。
  • -r /home/stack/templates/roles_data_custom.yaml - 指定来自 第 3 章 在专用节点上部署 Ceph 服务 的自定义角色,它为 Ceph MON 或 Ceph MDS 服务添加自定义角色。这些角色允许在专用节点上安装任一服务。
  • -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml - 设置 director 以创建 Ceph 集群。特别是,此环境文件将部署具有 容器化 Ceph Storage 节点的 Ceph 集群。
  • -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-rgw.yaml - 启用 Ceph 对象网关,如 第 4.2 节 “启用 Ceph 对象网关” 所述。
  • -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-mds.yaml - 启用 Ceph 元数据服务器,如 第 4.1 节 “启用 Ceph 元数据服务器” 所述。
  • -e /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml - 启用块存储备份服务(cinder-backup),如 第 4.4 节 “将备份服务配置为使用 Ceph” 所述。
  • -e /home/stack/templates/storage-config.yaml - 添加包含自定义 Ceph Storage 配置的环境文件。
  • -e /home/stack/templates/ceph-config.yaml - 添加包含自定义 Ceph 集群设置的环境文件,如 第 5 章 自定义 Ceph Storage 集群 所述。
  • --ntp-server pool.ntp.org - 设置 NTP 服务器。
提示

您还可以使用 回答文件来 调用所有模板和环境文件。例如,您可以使用以下命令部署相同的 overcloud:

$ openstack overcloud deploy -r /home/stack/templates/roles_data_custom.yaml \
  --answers-file /home/stack/templates/answers.yaml --ntp-server pool.ntp.org
Copy to Clipboard Toggle word wrap

在这种情况下,回答文件 /home/stack/templates/answers.yaml 包含:

templates: /usr/share/openstack-tripleo-heat-templates/
environments:
  - /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml
  - /usr/share/openstack-tripleo-heat-templates/environments/ceph-rgw.yaml
  - /usr/share/openstack-tripleo-heat-templates/environments/ceph-mds.yaml
  - /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml
  - /home/stack/templates/storage-config.yaml
  - /home/stack/templates/ceph-config.yaml
Copy to Clipboard Toggle word wrap

如需了解更多详细信息,请参阅 overcloud 部署中包含环境文件

如需完整的选项列表,请输入:

$ openstack help overcloud deploy
Copy to Clipboard Toggle word wrap

如需更多信息,请参阅 Director 安装和使用指南中的使用 CLI 工具配置基本 overcloud

overcloud 创建过程开始,director 置备节点。这个过程需要一些时间来完成。要查看 overcloud 创建的状态,请以 stack 用户身份打开一个单独的终端并输入以下命令:

$ source ~/stackrc
$ openstack stack list --nested
Copy to Clipboard Toggle word wrap

7.2.1. 限制运行 ceph-ansible 的节点

您可以通过限制 ceph-ansible 运行的节点来减少部署更新时间。当 Red Hat OpenStack Platform (RHOSP)使用 config-download 配置 Ceph 时,您可以使用 --limit 选项指定节点列表,而不是在整个部署中运行 config-downloadceph-ansible。例如,作为扩展 overcloud 或替换失败的磁盘的一部分,此功能很有用。在这些情况下,部署只能在您添加到环境中的新节点上运行。

在故障磁盘替换中使用 --limit 的示例

在以下示例中,Ceph 存储节点 oc0-cephstorage-0 的磁盘故障,以便它收到新的工厂干净磁盘。Ansible 需要在 oc0-cephstorage-0 节点上运行,以便新磁盘可以用作 OSD,但不需要在所有其他 Ceph 存储节点上运行。将示例环境文件和节点名称替换为适合您的环境。

流程

  1. stack 用户身份登录 undercloud 节点,并提供 stackrc 凭证文件:

    # source stackrc
    Copy to Clipboard Toggle word wrap
  2. 完成以下步骤之一,以便使用新磁盘来启动缺少的 OSD。

    • 运行堆栈更新并包含 --limit 选项,以指定您希望 ceph-ansible 运行的节点:

      $ openstack overcloud deploy --templates \
        -r /home/stack/roles_data.yaml \
        -n /usr/share/openstack-tripleo-heat-templates/network_data_dashboard.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
        -e ~/my-ceph-settings.yaml \
        -e <other-environment_files> \
        --limit oc0-controller-0:oc0-controller-2:oc0-controller-1:oc0-cephstorage-0:undercloud
      Copy to Clipboard Toggle word wrap

      在本例中,包含 Controller,因为 Ceph mons 需要 Ansible 更改其 OSD 定义。

    • 如果 config-download 生成一个 ansible-playbook-command.sh 脚本,您也可以使用 --limit 选项运行脚本,以将指定节点传递给 ceph-ansible

      ./ansible-playbook-command.sh --limit oc0-controller-0:oc0-controller-2:oc0-controller-1:oc0-cephstorage-0:undercloud
      Copy to Clipboard Toggle word wrap
      警告
      您必须始终将 undercloud 包含在限制列表中,否则在使用 --limit 时无法执行 ceph-ansible。这是必要的,因为 ceph-ansible 执行通过 external_deploy_steps_tasks playbook 进行,该 playbook 仅在 undercloud 上运行。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat