You can deploy OpenStack by using the OpenStack Management Server API.
For more information about APIs, see the VMware Integrated OpenStack API reference at VMware {code}.
Prerequisites
- Prepare your networks and vCenter Server environment. See Preparing Your Environment.
- Install VMware Integrated OpenStack on your vCenter Server instance. See Install VMware Integrated OpenStack.
- Verify that all required clusters and datastores are available.
- Clusters must include the required number of hosts and datastores and must not be consumed by another node.
- Datastores must be mounted to the correct cluster and must not be already configured.
- Verify that the DNS server is set correctly and that the network gateway or firewall forwards DNS requests on private networks.
Procedure
- In the vSphere Web Client, select Home > VMware Integrated OpenStack.
- Open the Summary tab.
- Under Connected Server, confirm that the address of the OpenStack Management Server is correct.
- Using an HTTP client, log in to the OpenStack Management Server API endpoint with the administrator credentials for your vCenter Server instance.
This procedure uses cURL as an example.
curl -X POST https://mgmt-server-ip:8443/v1/j_spring_security_check -d 'j_username=vcenter-user&j_password=vcenter-password' -v
- Deploy OpenStack with your specifications.
curl -X POST https://mgmt-server-ip:8443/v1/clusters -b JSESSIONID=session-id -d '{specifications}'
The value of JSESSIONID is displayed in the output from Step 1.
The schema is as follows:
{ "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: Enter LARGE for an HA deployment, SINGLEVM for a compact deployment, or TINY for a tiny deployment.
networkings: Create a copy of the contents of the networkings section for each network that you want to configure. Ensure that the value of the name parameter for each network is the name of the corresponding network in the network_mapping section.
netmask: Enter the value of netmask as a network address (for example,
255.255.255.0
).availability_zones: Create a copy of the contents of the availability_zones section for each availability zone that you want to create.
compute_clusters: Create a copy of the contents of the compute_clusters section for each compute cluster that you want to configure.
Important: If you configure an LDAP domain through this API, you cannot specify additional LDAP domains later. To use multiple LDAP domains in your deployment, configure the domains after deploying OpenStack.neutron_backend: Enter DVS for VDS networking, NSXV for NSX Data Center for vSphere networking, or NSXV3 for NSX-T Data Center networking.
The fields in the nsxv section apply only to deployments with NSX Data Center for vSphere networking. The fields in the nsxv3 section apply only to deployments with NSX-T Data Center networking. The values of these fields will be ignored in other deployments.