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-datastores",
              "esxi_netmask": "host-subnet-mask",
              "vcenter_ip": "compute-vcserver-ip"
            }
          ]
        },
        "identity": {
          "ad_domains": [
            {
              "attributes": {},
              "bind_password": "ldap-ad-user-password",
              "bind_user": "ldap-ad-user",
              "force_ldaps": {true | false},
              "ldap_admin_user": "ldap-admin",
              "ldap_certificates": [
                "cert-content"
              ],
              "ldap_group_desc_attribute": "group-description",
              "ldap_group_filter": "group-search-filter",
              "ldap_group_id_attribute": "group-id",
              "ldap_group_member_attribute": "group-member",
              "ldap_group_name_attribute": "group-name",
              "ldap_group_objectclass": "group-object-class",
              "ldap_group_tree_dn": "group-tree-dn",
              "ldap_search_scope": "search-scope",
              "ldap_url": "ldap-url",
              "ldap_use_start_tls": {true | false},
              "ldap_user_enabled_attribute": "enabled-attribute",
              "ldap_user_filter": "user-search-filter",
              "ldap_user_id_attribute": "user-id",
              "ldap_user_mail_attribute": "user-email",
              "ldap_user_name_attribute": "user-name",
              "ldap_user_objectclass": "user-object-class",
              "ldap_user_pass_attribute": "user-password",
              "ldap_user_tree_dn": "user-tree-dn"
            }
          ],
          "admin_project_name": "admin-project-name",
          "attributes": {},
          "sql_domain": {
            "admin_password": "admin-password",
            "admin_user": "admin-username",
            "attributes": {}
          },
          "token_expiration_time": "token-expiration-seconds"
        },
        "image": {
          "datastores": [
            {
              "datastores": "glance-datastore",
              "vcenter_ip": "glance-vcserver-ip"
            }
          ],
          "glance_folder": "image-folder"	
        },
        "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": "external-network-name",
            "nsxv_manager": "nsx-manager-ip",
            "nsxv_password": "nsx-manager-password",
            "nsxv_username": "nsx-manager-username",
            "nsxv_vdn_scope_moref": "vdn-scope-moid"
          },
          "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-zone",
            "nsxv3_default_tier0_router": "t0-router",
            "nsxv3_default_vlan_tz": "nsx-vlan-zone",
            "nsxv3_edge_cluster_name": "edge-cluster-name",
            "nsxv3_edge_cluster_uuid": "edge-cluster-uuid",
            "nsxv3_md_shared_password": "metadata-proxy-secret",
            "nsxv3_native_dhcp_profile": "dhcp-profile",
            "nsxv3_native_dhcp_profile_oms_create": "{true | false}",
            "nsxv3_native_md_proxy": "metadata-proxy-ip"
            "nsxv3_native_md_proxy_oms_create": "{true | false}"
          }
        },
        "region_name": "openstack-region",
        "syslog": {
          "port": "port-number",
          "protocol": "{UDP | TCP}",
          "server": "syslog-server-ip",
          "tag": "string"
        },
        "vcenter_insecure": "{true | false}",
        "volumn": {
          "attributes": {},
          "cinder_folder": "cinder-folder"
        }
      },
      "public_access": {
        "public_hostname": "public-api-hostname",
        "public_vip": "public-api-vip"
      },
      "root_ca_certificates": [
        "root-ca-content"
      ],
      "vcenters": [
        {
          "attributes": {},
          "hostname": "vcserver-hostname",
          "password": "vcserver-admin-password",
          "username": "vcserver-admin-user"
        }
      ],
      "version": "v1"
    }
     

     

     

     

     

     

    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섹션의 컨텐츠 복사본을 생성합니다.

    계산 클러스터에서 사용할 데이터스토어 클러스터를 지정하려면 attributes 섹션 내에 매개 변수 "nova_datastore_cluster": "ds-cluster-name"을 포함합니다.

     

     

    datastore_regex: 정규식을 입력하여 일치하는 모든 데이터스토어를 추가할 수 있습니다.

     

     

     

     

    중요:

    LDAP 도메인 구성은 선택 사항입니다. 이 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 네트워킹을 사용하는 배포에만 적용됩니다. 이러한 필드의 값은 다른 배포에서는 무시됩니다.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    nsxv3_native_dhcp_profile_oms_create: OpenStack에 대한 DHCP 프로파일을 자동으로 생성하려면 true를 입력합니다. 그러면 nsxv3_native_dhcp_profile 매개 변수가 무시됩니다.

    nsxv3_native_md_proxy_oms_create: OpenStack에 대한 메타데이터 프록시 서버를 자동으로 생성하려면 true를 입력합니다. 그러면 nsxv3_native_md_proxy 매개 변수가 무시됩니다.

     

     

     

     

     

     

     

     

    참고:

    블록 스토리지에서 사용할 데이터스토어 클러스터를 지정하려면 attributes 섹션 내에서 volumn 아래에 다음 매개 변수를 포함합니다.

    "cinder_vmware_datastore_cluster": "ds-cluster-name",
    "cinder_vmware_sdrs_default_cluster_name": "compute-cluster-name"

    cinder_vmware_datastore_cluster의 값은 블록 스토리지에 사용하려는 데이터스토어 클러스터로 설정합니다. cinder_vmware_sdrs_default_cluster_name의 값은 원시 Cinder 볼륨을 생성하는 데 사용된 계산 클러스터로 설정합니다.

다음에 수행할 작업

VMware Integrated OpenStack 라이센스 키 할당