9.9. 利用预置备节点创建 overcloud

overcloud 部署使用 第 7.12 节 “部署命令”中的标准 CLI 方法。对于预置备的节点,该部署命令需要使用来自核心 Heat 模板集的一些额外选项和环境文件:

  • --disable-validations - 禁止对未用于预置备基础架构的服务执行基本的 CLI 验证功能,否则,部署将失败。
  • environments/deployed-server-environment.yaml - 用于创建和配置预置备基础架构的主要环境文件。这种环境文件用 OS::Heat::DeployedServer 资源代替 OS::Nova::Server 资源。
  • environments/deployed-server-bootstrap-environment-rhel.yaml -用于在预置备服务器上执行启动引导脚本的环境文件。此脚本安装额外软件包,并包括 overcloud 节点的基本配置。
  • environments/deployed-server-pacemaker-environment.yaml - 用于在预置备 Controller 节点上进行 Pacemaker 配置的环境文件。此文件的注册资源的命名空间使用来自 deployed-server/deployed-server-roles-data.yaml 的 Controller 角色名称,默认为 ControllerDeployedServer
  • deployed-server/deployed-server-roles-data.yaml - 一个示例自定义角色文件。这个文件复制了默认的 roles_data.yaml,且还为每个角色包括了 disable_constraints: True 参数。这个参数在生成的角色模板中禁用编配限制。这些限制适用于预置备基础架构不使用的服务。

    如果您想使用自定义角色文件,请确保为每个角色包括 disable_constraints: True 参数:

    - name: ControllerDeployedServer
      disable_constraints: True
      CountDefault: 1
      ServicesDefault:
        - OS::TripleO::Services::CACerts
        - OS::TripleO::Services::CephMon
        - OS::TripleO::Services::CephExternal
        - OS::TripleO::Services::CephRgw
        ...

以下命令是示例 overcloud 部署命令,且环境文件特定于预置备的架构:

$ source ~/stackrc
(undercloud) $ openstack overcloud deploy \
  [other arguments] \
  --disable-validations \
  -e /usr/share/openstack-tripleo-heat-templates/environments/deployed-server-environment.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/deployed-server-bootstrap-environment-rhel.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/deployed-server-pacemaker-environment.yaml \
  -e /home/stack/templates/hostname-map.yaml /
  -r /usr/share/openstack-tripleo-heat-templates/deployed-server/deployed-server-roles-data.yaml
  --overcloud-ssh-user stack \
  --overcloud-ssh-key ~/.ssh/id_rsa \
  [OTHER OPTIONS]

--overcloud-ssh-user--overcloud-ssh-key 选项用于在配置阶段通过 SSH 连接每个 overcloud 节点,创建初始 tripleo-admin 用户,以及将 SSH 密钥注入 /home/tripleo-admin/.ssh/authorized_keys。要注入 SSH 密钥,请为初始 SSH 连接注入包含 --overcloud-ssh-user--overcloud-ssh-key(默认为 ~/.ssh/id_rsa)的凭据。为了避免暴露使用 --overcloud-ssh-key 选项指定的私钥,director 不会将该密钥传递给任何 API 服务,如 Heat 或 Mistral,而只有 director 的 openstack overcloud deploy 命令使用此密钥为 tripleo-admin 用户启用访问权限。