您可以使用 OpenStack 管理服务器 API 部署 OpenStack。

有关 API 的详细信息,请参见 VMware {code} 处的 VMware Integrated OpenStack API 参考

前提条件

  • 准备网络和 vCenter Server 环境。请参见准备环境

  • vCenter Server 实例上安装 VMware Integrated OpenStack。请参见安装 VMware Integrated OpenStack

  • 确认所有必需群集和数据存储均可用。

    • 群集必须包含所需数量的主机和数据存储,且其他节点不得使用该群集。

    • 数据存储必须挂载到正确的群集,且必须尚未配置。

  • 确认已正确设置 DNS 服务器并且网络网关或防火墙在专用网络上转发 DNS 请求。

过程

  1. vSphere Client 中,选择菜单 > VMware Integrated OpenStack
  2. 基本任务下,单击连接到 OpenStack 管理服务器
  3. 选择 OpenStack 管理服务器,然后单击确定
  4. 使用 HTTP 客户端,通过 vCenter Server 实例的管理员凭据登录到 OpenStack 管理服务器 API 端点。

    此过程使用 cURL 作为示例。

    curl -X POST https://mgmt-server-ip:8443/login -d 'username=vcenter-user&password=vcenter-password' -v
  5. 使用您的规范部署 OpenStack。
    curl -X POST https://mgmt-server-ip:8443/v1/clusters -b JSESSIONID=session-id -d '{specifications}'

    JSESSIONID 的值显示在步骤 1 的输出中。

    结构定义如下:

    {
      "attributes": {},
      "deployment_type": "{LARGE | SINGLEVM | TINY}",
      "management_cluster": {
        "moid": "mgmt-cluster-moid",
        "name": "mgmt-cluster-name"
      },
      "name": "deployment-name",
      "network_mapping": {
        "data_network": "api-access-network-name",
        "external_network": "external-network-name",
        "management_network": "mgmt-network-name",
        "metadata_network": "metadata-network-name"
      },
      "networkings": [
        {
          "dns1": "dns-server-ip1",
          "dns2": "dns-server-ip2",
          "gateway": "gateway-ip",
          "ip_blocks": [
            {
              "begin_ip": "ip-range-start",
              "end_ip": "ip-range-end"
            }
          ],
          "name": "network-name",
          "netmask": "subnet-mask",
          "portgroup_moref": "port-group-moid",
          "portgroup_name": "port-group-name"
        }
      ],
      "openstack_info": {
        "attributes": {},
        "availability_zones": [
          {
            "attributes": {},
            "name": "az-name"
          }
        ],
        "compute": {
          "attributes": {},
          "compute_clusters": [
            {
              "attributes": {},
              "availability_zone_name": "compute-cluster-az",
              "cluster_moid": "compute-cluster-moid",
              "cluster_name": "compute-cluster-name",
              "datastore_regex": "compute-cluster-regex",
              "vcenter_ip": "compute-vcserver-ip"
            }
          ]
        },
        "identity": {
          "ad_domains": [
            {
              "attributes": {},
              "bind_password": "string",
              "bind_user": "string",
              "force_ldaps": {true | false},
              "ldap_admin_user": "string",
              "ldap_certificates": [
                "string"
              ],
              "ldap_group_desc_attribute": "string",
              "ldap_group_filter": "string",
              "ldap_group_id_attribute": "string",
              "ldap_group_member_attribute": "string",
              "ldap_group_name_attribute": "string",
              "ldap_group_objectclass": "string",
              "ldap_group_tree_dn": "string",
              "ldap_search_scope": "string",
              "ldap_url": "string",
              "ldap_use_start_tls": true,
              "ldap_user_enabled_attribute": "string",
              "ldap_user_filter": "string",
              "ldap_user_id_attribute": "string",
              "ldap_user_mail_attribute": "string",
              "ldap_user_name_attribute": "string",
              "ldap_user_objectclass": "string",
              "ldap_user_pass_attribute": "string",
              "ldap_user_tree_dn": "string"
            }
          ],
          "admin_project_name": "admin-project-name",
          "attributes": {},
          "sql_domain": {
            "admin_password": "admin-password",
            "admin_user": "admin-username",
            "attributes": {}
          },
          "token_expiration_time": "string"
        },
        "image": {
          "datastores": [
            {
              "datastores": "string",
              "vcenter_ip": "string"
            }
          ],
          "glance_folder": "string"	
        },
        "network": {
          "attributes": {},
          "dvs": {},
          "neutron_backend": "{DVS | NSXV | NSXV3}",
          "nsxv": {
            "nsxv_dvs_moref": "nsxv-vds-moid",
            "nsxv_dvs_name": "nsxv-vds-name",
            "nsxv_edge_cluster_moref": "edge-cluster-moid",
            "nsxv_edge_cluster_name": "edge-cluster-name",
            "nsxv_edge_ha": "{TRUE | FALSE}",
            "nsxv_exclusive_router_appliance_size": "string",
            "nsxv_external_network_name": "string",
            "nsxv_manager": "nsx-manager-ip",
            "nsxv_password": "nsx-manager-password",
            "nsxv_username": "nsx-manager-username",
            "nsxv_vdn_scope_moref": "string"
          },
          "nsxv3": {
            "nsxv3_api_managers": "nsx-manager-ip",
            "nsxv3_api_password": "nsx-manager-password",
            "nsxv3_api_username": "nsx-manager-username",
            "nsxv3_default_overlay_tz": "nsx-overlay-tz",
            "nsxv3_default_tier0_router": "t0-router",
            "nsxv3_default_vlan_tz": "nsx-vlan-tz",
            "nsxv3_md_shared_password": "metadata-proxy-secret",
            "nsxv3_native_dhcp_profile": "dhcp-profile",
            "nsxv3_native_md_proxy": "metadata-proxy-ip"
          }
        },
        "region_name": "string",
        "syslog": {
          "port": "string",
          "protocol": "{UDP | TCP}",
          "server": "syslog-server-ip",
          "tag": "string"
        },
        "vcenter_insecure": "string",
        "volumn": {
          "attributes": {},
          "cinder_folder": "string"
        }
      },
      "public_access": {
        "public_hostname": "string",
        "public_vip": "string"
      },
      "root_ca_certificates": [
        "string"
      ],
      "vcenters": [
        {
          "attributes": {},
          "hostname": "string",
          "password": "string",
          "username": "string"
        }
      ],
      "version": "string"
    }
     

     

     

     

     

     

    deployment_type:为 HA 部署输入 LARGE,为紧凑型部署输入 SINGLEVM,或者为微型部署输入 TINY

     

     

     

     

     

     

     

     

     

     

     

    networkings:为要配置的每个网络创建 networkings 部分的一个内容副本。确保每个网络的 name 参数的值是 network_mapping 部分中相应网络的名称。

     

     

     

     

     

     

     

     

     

     

    netmask:输入 netmask 的值作为网络地址(例如,255.255.255.0)。

     

     

     

     

     

     

    availability_zones:为要创建的每个可用区创建 availability_zones 部分的一个内容副本。

     

     

     

     

     

     

    compute_clusters:为要配置的每个计算群集创建 compute_clusters 部分的一个内容副本。

     

     

     

     

     

     

     

    重要:

    如果通过此 API 配置 LDAP 域,稍后将无法指定其他 LDAP 域。要在部署中使用多个 LDAP 域,请在部署 OpenStack 后再配置域。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    neutron_backend:为 VDS 网络输入 DVS,为 NSX Data Center for vSphere 网络输入 NSXV,或者为 NSX-T Data Center 网络输入 NSXV3

     

    nsxv 部分中的字段仅适用于使用 NSX Data Center for vSphere 网络的部署。nsxv3 部分中的字段仅适用于使用 NSX-T Data Center 网络的部署。在其他部署中将忽略这些字段的值。

下一步做什么

分配 VMware Integrated OpenStack 许可证密钥