Puede implementar OpenStack mediante la API de Servidor de administración de OpenStack.

Para obtener más información sobre las API, consulte la Referencia de API de VMware Integrated OpenStack en VMware {code}.

Requisitos previos

  • Prepare las redes y el entorno de vCenter Server. Consulte Preparar el entorno.

  • Instale VMware Integrated OpenStack en su instancia de vCenter Server. Consulte Instalar VMware Integrated OpenStack.

  • Compruebe que están disponibles todos los clústeres y los almacenes de datos necesarios.

    • Los clústeres deben incluir el número necesario de hosts y almacenes de datos, y otro nodo no debe utilizarlos.

    • Los almacenes de datos deben montarse en el clúster correcto y no deben estar ya configurados.

  • Compruebe que el servidor DNS se estableció correctamente, y que el firewall o la puerta de enlace de red reenvían solicitudes de DNS en redes privadas.

Procedimiento

  1. En vSphere Client, seleccione Menú > VMware Integrated OpenStack.
  2. En Tareas básicas, haga clic en Conectarse con un servidor de administración de OpenStack.
  3. Seleccione el Servidor de administración de OpenStack y haga clic en Aceptar.
  4. Mediante un cliente HTTP, realice la autenticación con el endpoint de la API de Servidor de administración de OpenStack utilizando las credenciales de administrador de la instancia de vCenter Server.

    Este procedimiento utiliza cURL como ejemplo.

    curl -X POST https://mgmt-server-ip:8443/login -d 'username=vcenter-user&password=vcenter-password' -v
  5. Implemente OpenStack con sus especificaciones.
    curl -X POST https://mgmt-server-ip:8443/v1/clusters -b JSESSIONID=session-id -d '{specifications}'

    El valor de JSESSIONID se muestra en el resultado del paso 1.

    El esquema se presenta a continuación:

    {
      "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: introduzca LARGE para una implementación de HA, SINGLEVM para una implementación compacta o TINY para una implementación muy pequeña.

     

     

     

     

     

     

     

     

     

     

     

    networkings: cree una copia del contenido de la sección networkings para cada red que desea configurar. Asegúrese de que el valor del parámetro name para cada red es el nombre de la red correspondiente en la sección network_mapping.

     

     

     

     

     

     

     

     

     

     

    netmask: introduzca el valor de netmask como una dirección de red (por ejemplo, 255.255.255.0).

     

     

     

     

     

     

    availability_zones: cree una copia del contenido de la sección availability_zones para cada zona de disponibilidad que desea crear.

     

     

     

     

     

    compute_clusters: cree una copia del contenido de la sección compute_clusters para cada clúster de proceso que desea configurar.

    Para especificar un clúster de almacén de datos para que lo use un clúster de proceso, incluya el siguiente parámetro en la sección attributes: "nova_datastore_cluster": "ds-cluster-name"

     

     

    datastore_regex: puede introducir una expresión regular para agregar todos los almacenes de datos coincidentes.

     

     

     

     

    Importante:

    La configuración de un dominio de LDAP es opcional. Si configura un dominio de LDAP mediante esta API, no podrá especificar dominios de LDAP adicionales más adelante. Para utilizar varios dominios de LDAP en la implementación, configure los dominios después de implementar OpenStack.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    neutron_backend: introduzca DVS para redes de VDS, NSXV para redes de NSX Data Center for vSphere o NSXV3 para redes de NSX-T Data Center.

     

    Los campos de la sección nsxv se aplican solo a las implementaciones con redes de NSX Data Center for vSphere. Los campos de la sección nsxv3 se aplican solo a las implementaciones con redes de NSX-T Data Center. Los valores de estos campos se omitirán en otras implementaciones.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    nsxv3_native_dhcp_profile_oms_create: introduzca true para generar un perfil de DHCP para OpenStack de manera automática. A continuación, se omitirá el parámetro nsxv3_native_dhcp_profile.

    nsxv3_native_md_proxy_oms_create: introduzca true para generar un servidor proxy de metadatos para OpenStack de manera automática. A continuación, se omitirá el parámetro nsxv3_native_md_proxy.

     

     

     

     

     

     

     

     

    Nota:

    Para especificar un clúster de almacenes de datos para que lo emplee el almacenamiento en bloque, incluya estos parámetros en la sección attributes en volumn:

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

    Establezca el valor de cinder_vmware_datastore_cluster como el clúster de almacenes de datos que desea utilizar para el almacenamiento en bloque. Establezca el valor de cinder_vmware_sdrs_default_cluster_name como el clúster de proceso que se utiliza para crear volúmenes de Cinder sin procesar.

Qué hacer a continuación

Asignar la clave de licencia de VMware Integrated OpenStack