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: 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 네트워킹을 사용하는 배포에만 적용됩니다. 이러한 필드의 값은 다른 배포에서는 무시됩니다.