您可以使用 OpenStack 管理伺服器 API 部署 OpenStack。
如需有關 API 的詳細資訊,請參閱 VMware {code} 中的VMware Integrated OpenStack API 參考。
先決條件
準備您的網路和 vCenter Server 環境。請參閱準備環境。
在 vCenter Server 執行個體上安裝 VMware Integrated OpenStack。請參閱安裝 VMware Integrated OpenStack。
確認所有必要的叢集和資料存放區均可供使用。
叢集必須包含必要的主機和資料存放區數目,不得由其他節點耗用。
資料存放區必須掛接至正確的叢集,且必須尚未設定。
確認 DNS 伺服器已正確設定,且網路閘道或防火牆轉送私人網路上的 DNS 要求。
程序
- 在 vSphere Web Client 中,選取首頁 > VMware Integrated OpenStack。
- 開啟摘要索引標籤。
- 在已連線的伺服器下,確認 OpenStack 管理伺服器 的位址正確無誤。
- 透過 HTTP 用戶端,使用 vCenter Server 執行個體的管理員認證登入 OpenStack 管理伺服器 API 端點。
此程序使用 cURL 做為範例。
curl -X POST https://mgmt-server-ip:8443/v1/j_spring_security_check -d 'j_username=vcenter-user&j_password=vcenter-password' -v
- 使用規格部署 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_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:輸入 LARGE (針對 HA 部署)、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:輸入 DVS (針對 VDS 網路)、NSXV (針對 NSX Data Center for vSphere 網路),或 NSXV3 (針對 NSX-T Data Center 網路)。
nsxv 區段中的欄位僅適用於使用 NSX Data Center for vSphere 網路的部署。nsxv3 區段中的欄位僅適用於使用 NSX-T Data Center 網路的部署。將在其他部署中略過這些欄位的值。