第 7 章 创建 Overcloud

创建 OpenStack 环境的最后一个阶段是运行 openstack overcloud deploy 命令进行创建。在运行这个命令前,您需要已经对关键的选项,以及如何包括自定义环境文件有所了解。本章将讨论 openstack overcloud deploy 命令以及与它相关的选项。

警告

不要以后台进程的形式运行 openstack overcloud deploy,因为这可能会造成在 Overcloud 的创建过程中出现进程无法继续的问题。

7.1. 设置 Overcloud 参数

下表列出了 openstack overcloud deploy 命令的额外参数。

表 7.1. 部署参数

参数

描述

示例

--templates [TEMPLATES]

包括在部署过程中使用的 Heat 模板的目录。如果为空,命令会使用位于 /usr/share/openstack-tripleo-heat-templates/ 的默认模板。

~/templates/my-overcloud

--stack STACK

创建或更新的栈的名称

overcloud

-t [TIMEOUT], --timeout [TIMEOUT]

部署超时时间(分钟)

240

--control-scale [CONTROL_SCALE]

扩展的 Controller 节点数量

3

--compute-scale [COMPUTE_SCALE]

扩展的 Compute 节点数量

3

--ceph-storage-scale [CEPH_STORAGE_SCALE]

扩展的 Ceph 节点数量

3

--block-storage-scale [BLOCK_STORAGE_SCALE]

扩展的 Cinder 节点数量

3

--swift-storage-scale [SWIFT_STORAGE_SCALE]

扩展的 Swift 节点数量

3

--control-flavor [CONTROL_FLAVOR]

Controller 节点使用的 flavor

control

--compute-flavor [COMPUTE_FLAVOR]

Compute 节点使用的 flavor

compute

--ceph-storage-flavor [CEPH_STORAGE_FLAVOR]

Ceph 节点使用的 flavor

ceph-storage

--block-storage-flavor [BLOCK_STORAGE_FLAVOR]

Cinder 节点使用的 flavor

cinder-storage

--swift-storage-flavor [SWIFT_STORAGE_FLAVOR]

Swift 存储节点使用的 flavor

swift-storage

--neutron-flat-networks [NEUTRON_FLAT_NETWORKS]

(已过时)定义在 neutron 插件中配置的平面网络(flat nework)。默认是 "datacentre",允许外部网络创建

datacentre

--neutron-physical-bridge [NEUTRON_PHYSICAL_BRIDGE]

(已过时)在每个 hypervisor 上创建的 Open vSwitch 网桥。默认值是 "br-ex",一般情况下不需要修改它

br-ex

--neutron-bridge-mappings [NEUTRON_BRIDGE_MAPPINGS]

(已过时)使用的物理网桥映射逻辑。默认情况是把主机上的外部网桥(br-ex)映射到一个物理名(datacentre)。您可以使用它作为默认的浮动网络(floating network)

datacentre:br-ex

--neutron-public-interface [NEUTRON_PUBLIC_INTERFACE]

(已过时)定义网络节点的 br-ex 中的网桥接口

nic1, eth0

--neutron-network-type [NEUTRON_NETWORK_TYPE]

(已过时)neutron 的租户网络类型

gre 或 vxlan

--neutron-tunnel-types [NEUTRON_TUNNEL_TYPES]

(已过时)Neutron 租户网络的隧道(tunnel)类型。使用逗号分隔的字符串可以指定多个值

vxlan gre,vxlan

--neutron-tunnel-id-ranges [NEUTRON_TUNNEL_ID_RANGES]

(已过时)可以用来进行租户网络分配的 GRE tunnel ID 的范围

1:1000

--neutron-vni-ranges [NEUTRON_VNI_RANGES]

(已过时)可以用来进行租户网络分配的 VXLAN VNI ID 范围

1:1000

--neutron-disable-tunneling

(已过时)禁用 tunneling 功能来在 Neutron 中使用 VLAN 分段网络或平面网络

 

--neutron-network-vlan-ranges [NEUTRON_NETWORK_VLAN_RANGES]

(已过时)支持的 Neutron ML2 和 Open vSwitch VLAN 映射范围。默认是在 datacentre 物理网络中允许任何 VLAN。

datacentre:1:1000

--neutron-mechanism-drivers [NEUTRON_MECHANISM_DRIVERS]

(已过时)neutron 租户网络的驱动。默认值是 "openvswitch"。使用逗号分隔的字符串可以指定多个值

openvswitch,l2population

--libvirt-type [LIBVIRT_TYPE]

hypervisor 使用的虚拟类型

kvm,qemu

--ntp-server [NTP_SERVER]

用来同步时间的 NTP 服务器

pool.ntp.org

--no-proxy [NO_PROXY]

为环境变量 no_proxy 指定自定义值。这个环境变量被用来在代理通讯中排除特定的域扩展。

 

--overcloud-ssh-user OVERCLOUD_SSH_USER

定义访问 Overcloud 节点的 SSH 用户。SSH 访问通常使用 heat-admin 用户。

ocuser

-e [EXTRA HEAT TEMPLATE], --extra-template [EXTRA HEAT TEMPLATE]

传递给 Overcloud 部署的额外环境文件。这个参数可以指定多次。请注意,传递到 openstack overcloud deploy 命令的环境文件顺序是非常重要的。例如,一个参数出现在一个环境文件中,当这个环境文件的后续环境文件中又出现了这个参数,则后续文件中的参数设置会覆盖前面文件中的设置。

-e ~/templates/my-config.yaml

--environment-directory

需要在部署中包括的环境文件所在的目录。这个命令会使用数字顺序而不是字母顺序处理这些环境文件。

--environment-directory ~/templates

--validation-errors-fatal

Overcloud 的创建过程会进行一个部署前的检查。当设置了这个选项时,如果部署前的检查出现任何错误,整个操作会退出。我们推荐使用这个参数,因为任何错误都有可能造成您的部署失败。

 

--validation-warnings-fatal

Overcloud 的创建过程会进行一个部署前的检查。当设置了这个选项时,如果部署前的检查出现任何非关键性的警告,整个操作会退出。

 

--dry-run

对 Overcloud 进行验证检查,而不是实际创建 Overcloud。

 

--force-postconfig

强制进行 Overcloud 部署后的配置。

--force-postconfig

--answers-file ANSWERS_FILE

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

--answers-file ~/answers.yaml

--rhel-reg

把 Overcloud 节点注册到客户门户网站或 Satellite 6

 

--reg-method

overcloud 节点使用的注册方法

如果使用 Red Hat Satellite 6 或 Red Hat Satellite 5,设置为 satellite;如果使用客户门户网站(Customer Portal),设置为 portal

--reg-org [REG_ORG]

注册的机构

 

--reg-force

强制注册系统(即使已经注册过)

 

--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 进行注册。

 

--reg-activation-key [REG_ACTIVATION_KEY]

用于注册的激活码

 
注意

运行以下命令获得选项的完整列表:

$ openstack help overcloud deploy

7.2. 在 Overcloud 创建中包括环境文件

使用 -e 指定一个用来定制 Overcloud 的环境文件。您可以根据需要添加多个环境文件,但是,环境文件的顺序非常重要,后面的环境文件中定义的参数和资源会覆盖以前环境文件中定义的相同参数和资源。以下是环境文件顺序的一个示例:

  • 所有网络分离文件,包括 heat 模板集合中的初始文件 - environments/network-isolation.yaml,然后是自定义的 NIC 配置文件。如需了解更多与网络分离相关的信息,请参阅 第 6.2 节 “分离网络”
  • 任何外部的负载平衡环境文件。
  • 任何存储环境文件,如 Ceph Storage、NFS、iSCSI 等。
  • 任何用于 Red Hat CDN 或 Satellite 注册的环境文件。
  • 任何其它自定义环境文件。

使用 -e 选项添加的所有环境文件都会成为 Overcloud 的栈定义的一部分。

同样,使用 --environment-directory 选项添加的目录中包括的环境文件也会成为 Overcloud 的栈定义的一部分。部署命令按照数字的顺序而不是字母顺序处理这个目录中的环境文件。因此,在使用这个方法时,推荐在文件名中包括一个数字前缀。例如:

$ ls -1 ~/templates
10-network-isolation.yaml
20-network-environment.yaml
30-storage-environment.yaml
40-rhel-registration.yaml

director 需要这些环境文件来进行重新部署,以及使用部署后的功能(请参阅 第 8 章 创建 Overcloud 后执行的任务)。没有正确包括这些文件可能会破坏您的 Overcloud。

如果计划在以后修改 Overcloud 配置,您应该:

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

不要直接编辑 Overcloud 的配置,因为在使用 director 对 Overcloud 栈进行更新时,手工修改的配置会被 director 的配置覆盖。

重要

保存原始的部署命令以便以后使用和修改。例如,在名为 deploy-overcloud.sh 的脚本文件中保存您的部署命令:

#!/bin/bash
openstack overcloud deploy --templates \
  -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
  -e ~/templates/network-environment.yaml \
  -e ~/templates/storage-environment.yaml \
  -t 150 \
  --control-scale 3 \
  --compute-scale 3 \
  --ceph-storage-scale 3 \
  --swift-storage-scale 0 \
  --block-storage-scale 0 \
  --compute-flavor compute \
  --control-flavor control \
  --ceph-storage-flavor ceph-storage \
  --swift-storage-flavor swift-storage \
  --block-storage-flavor block-storage \
  --ntp-server pool.ntp.org \
  --neutron-network-type vxlan \
  --neutron-tunnel-types vxlan \
  --libvirt-type qemu

这保存了 Overcloud 部署命令的参数和环境文件以供以后使用(如修改 Overcloud 或对 Overcloud 进行扩展)。您可以根据 Overcloud 的具体情况修改并重新运行这个脚本。

7.3. Overcloud 创建示例

以下是一个启动 Overcloud 创建过程的示例,它包括了自定义的环境文件:

$ openstack overcloud deploy --templates \
  -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
  -e ~/templates/network-environment.yaml \
  -e ~/templates/storage-environment.yaml \
  --control-scale 3 \
  --compute-scale 3 \
  --ceph-storage-scale 3 \
  --control-flavor control \
  --compute-flavor compute \
  --ceph-storage-flavor ceph-storage \
  --ntp-server pool.ntp.org \
  --neutron-network-type vxlan \
  --neutron-tunnel-types vxlan \

这个命令包括以下的额外选项:

  • --templates - 使用 /usr/share/openstack-tripleo-heat-templates 中的 Heat 模板集合创建 Overcloud。
  • -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml - -e 选项为 Overcloud 部署添加了一个额外的环境文件。在这里,它是一个初始化网络分离配置的环境文件。
  • -e ~/templates/network-environment.yaml - -e 选项为 Overcloud 部署添加了一个环境文件。在这里,它是在 第 6.2.2 节 “创建一个网络环境文件” 中创建的网络环境文件。
  • -e ~/templates/storage-environment.yaml - -e 选项为 Overcloud 部署添加了一个额外的环境文件。在这里,它是一个用来初始存储配置的自定义环境文件。
  • --control-scale 3 - 把 Controller 节点扩展到 3 个。
  • --compute-scale 3 - 把 Compute 节点扩展到 3 个。
  • --ceph-storage-scale 3 - 把 Ceph Storage 节点扩展到 3 个。
  • --control-flavor control - 为 Controller 节点使用一个特定的 flavor。
  • --compute-flavor compute - 为 Compute 节点使用一个特定的 flavor。
  • --ceph-storage-flavor ceph-storage - 为 Ceph Storage 节点使用一个特定的 flavor。
  • --ntp-server pool.ntp.org - 使用一个 NTP 服务器进行时间同步。这可以保持 Controller 节点集群的同步。
  • --neutron-network-type vxlan - 在 Overcloud 中使用虚拟可扩展 LAN(Virtual Extensible LAN,简称 VXLAN)作为 neutron 网络。
  • --neutron-network-type vxlan - 在 Overcloud 中使用虚拟可扩展 LAN(Virtual Extensible LAN,简称 VXLAN)作为 neutron 通道(tunneling)。

7.4. 监控 Overcloud 的创建过程

Overcloud 创建过程开始,director 会部署您的节点。这个过程需要一些时间完成。要查看 Overcloud 创建的状态,在另外一个终端窗口中以 stack 用户身份运行:

$ source ~/stackrc                # Initializes the stack user to use the CLI commands
$ heat stack-list --show-nested

heat stack-list --show-nested 命令会显示创建 Overcloud 的当前状态。

7.5. 访问 Overcloud

director 产生一个脚本来配置和帮助验证 Overcloud 和 director 主机间的通讯。director 把这个文件保存为 stack 用户家目录的 overcloudrc 文件。运行以下命令来使用这个文件:

$ source ~/overcloudrc

这会加载从 director 主机的 CLI 访问 Overcloud 所需的环境变量。如要返回 director 主机的原始环境,运行以下命令:

$ source ~/stackrc

Overcloud 中的每个节点还会包括一个名为 heat-admin 的用户。stack 用户有到每个节点上的这个用户的 SSH 访问权限。要通过 SSH 访问一个节点,找到相关节点的 IP 地址:

$ nova list

使用 heat-admin 用户和节点的 IP 地址连接到节点:

$ ssh heat-admin@192.0.2.23

7.6. 完成 Overcloud 的创建

到此,基本的 Overcloud 创建过程已完成。如需了解更多创建后的功能,请参阅 第 8 章 创建 Overcloud 后执行的任务