Puede descargar e implementar Horizon Edge Gateway en la implementación federada de Horizon 8 en Amazon Web Services (AWS) para emparejarse con Horizon Cloud Service - next-gen.

Requisitos previos

Siga estos pasos para descargar e implementar el dispositivo Horizon Edge Gateway para una implementación de pod que utilice la arquitectura federada con VMware Cloud on AWS. En la arquitectura federada, debe implementar Horizon Edge Gateway en la infraestructura nativa de Amazon Elastic Computer Cloud (EC2) dentro del entorno del pod en Horizon Cloud Service - next-gen.

  • Compruebe que cumple los requisitos previos relacionados con Horizon Edge Gateway descritos en Implementaciones de Horizon 8 Edge.
  • Compruebe que cumple los Hacer que las URL de destino adecuadas sean accesibles para implementar Horizon Edge Gateway en un entorno de Horizon 8 para usar Horizon Edge Gateway para emparejar un pod de Horizon 8 con Horizon Cloud Service.
  • El dispositivo virtual de Horizon Edge Gateway debe tener acceso a Internet para poder comunicarse con el plano de control de Horizon Cloud. Si en el entorno se requiere el uso de un servidor proxy y su correspondiente configuración para que los dispositivos implementados puedan acceder a Internet, al configurar el proxy con el dispositivo de Horizon Edge Gateway, verifique que revisó la información relacionada con dicho proxy, así como las limitaciones y los problemas conocidos.
  • Si pretende utilizar un proxy al ejecutar un script de par de instancias de Edge, primero debe ejecutar el siguiente comando, especificando el valor true cuando ProxySSL está habilitado y especificando el valor false en el resto de casos:
    /opt/vmware/bin/pair-edge-with-proxy.sh -i 'IP_or FQDN_of Proxy' -o 'Proxy_Port' -u 'Proxy_User_Name' -p 'Proxy_Password' -s 'true_or_false' -c 'Connection_String'
    Consulte la información relacionada con el proxy en la siguiente nota.
    Nota: Actualizar configuración de proxy en Edge
    /opt/vmware/bin/configure-edge-webproxy.py --proxyHost 127.0.0.1 --proxyPort 3128 --proxyUsername 'exampleUsername' --proxyPassword 'examplePassword'
    
    Para explorar más opciones, ejecute el script con la opción -h, como se muestra a continuación.
    /opt/vmware/bin/configure-edge-webproxy.py -h
  • Debe utilizar la línea de comandos para muchos de los pasos. Sin embargo, puede realizar algunos de los pasos de implementación mediante la consola de administración de AWS o la interfaz de línea de comandos (CLI) de AWS. Para obtener información detallada sobre cómo trabajar con un entorno de Amazon EC2, consulte la documentación de Amazon Elastic Compute Cloud en https://docs.aws.amazon.com/ec2/index.html. Los pasos que siguen suelen sugerir el tipo específico de documentación de Amazon Elastic Compute Cloud que se debe consultar.

Procedimiento

  1. Descargue la imagen de disco de Horizon Edge Gateway mediante la instrucción del Paso 7. Utilice Descargar para obtener el archivo binario del dispositivo Horizon Edge Gateway. del procedimiento en la página Implementar una instancia de Horizon Edge para usarla con implementaciones de Horizon 8 y el plano de control de Horizon Cloud Service - next-gen y siga todas las indicaciones en pantalla.

    La imagen de disco de Horizon Edge Gateway está disponible como archivo VMDK. Descargue el archivo VMDK en el sistema local.

    Nota: Descargue la versión 2.3.3.0 o posterior de la imagen de disco de Horizon Edge Gateway, por ejemplo, edge-gw-2.3.3.0-22720582.ec2.vmdk.

    Guarde el archivo binario descargado en una ubicación desde la que lo implementará en la plataforma de virtualización deseada y, a continuación, vuelva a esta secuencia de pasos para continuar con el proceso de emparejamiento requerido.

    Antes de cargar el archivo de imagen de disco en el entorno de Amazon EC2, primero debe crear un depósito Amazon S3.
  2. Cree un depósito de Amazon S3 en el entorno de Amazon EC2. Para obtener instrucciones detalladas, consulte la documentación de Amazon Elastic Compute Cloud.
  3. Cargue el archivo VMDK descargado en el depósito de Amazon S3. Puede realizar este paso mediante la consola de administración de AWS o la interfaz de línea de comandos (CLI) de AWS.
    • (Consola de administración de AWS) Inicie sesión en la consola de administración de AWS del entorno de Amazon EC2. Vaya al servicio S3, seleccione el depósito que creó anteriormente y cargue el archivo VMDK en el depósito.
    • (CLI de AWS) Acceda a la CLI de AWS y ejecute el siguiente comando.
      aws s3 cp <file-path-to-VMDK-file> <S3URI>

      Consulte la documentación de Amazon Elastic Compute Cloud para obtener más información sobre la ejecución del comando cp.

    En la consola de administración de AWS, el archivo VMDK se muestra en la pestaña Objetos.
  4. Cree una función de servicio y una directiva y asocie la directiva a la función.
    1. Cree el primero de los tres nuevos archivos JSON necesarios para este procedimiento.
      El propósito de este archivo JSON en particular es almacenar la información de la función de servicio. Asigne el nombre que desee al archivo. En este procedimiento, el nombre de archivo de ejemplo de este archivo es trust-policy.json.
      El siguiente texto es un ejemplo del contenido del archivo JSON.
      {
          "Version":"2012-10-17",
          "Statement":[
              {
                  "Sid":"",
                  "Effect":"Allow",
                  "Principal":{
                      "Service":"vmie.amazonaws.com"
                  },
                  "Action":"sts:AssumeRole",
                  "Condition":{
                      "StringEquals":{
                          "sts:ExternalId":"vmimport"
                      }
                  }
              }
          ]
      }
    2. Cree una función de servicio con el nombre que desee y almacene la información de la función en el nuevo archivo JSON.
      Por ejemplo, con la interfaz de línea de comandos, ejecute un comando como el siguiente.
      El siguiente comando es un ejemplo genérico.
      aws iam create-role --role-name <role-name> --assume-role-policy-document <file-path>

      El siguiente comando de ejemplo reemplaza el marcador de posición <role-name> por el ejemplo específico vmimport y el marcador de posición <file-path> por el ejemplo específico trust-policy.json.

      aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json

      Consulte la documentación de Amazon Elastic Compute Cloud para obtener más información sobre la ejecución del comando create-role.

    3. Cree el segundo de los tres nuevos archivos JSON necesarios para este procedimiento.
      Proporcione el nombre del depósito en el que cargará el archivo VMDK, como <bucket-name>, el nombre utilizado en el ejemplo que aparece a continuación.
      El propósito de este archivo JSON en particular es asociar una nueva directiva con la nueva función. Asigne el nombre que desee al archivo. En este procedimiento, el nombre de archivo de ejemplo de este archivo es role-policy.json.
      El siguiente texto es un ejemplo del contenido del archivo role-policy.json de ejemplo.
      {
          "Version":"2012-10-17",
          "Statement":[
              {
                  "Effect":"Allow",
                  "Action":[
                      "s3:ListBucket",
                      "s3:GetBucketLocation"
                  ],
                  "Resource":[
                      "arn:aws:s3:::<bucket-name>"
                  ]
              },
              {
                  "Effect":"Allow",
                  "Action":[
                      "s3:GetObject"
                  ],
                  "Resource":[
                      "arn:aws:s3:::<bucket-name>/*"
                  ]
              },
              {
                  "Effect":"Allow",
                  "Action":[
                      "ec2:ModifySnapshotAttribute",
                      "ec2:CopySnapshot",
                      "ec2:RegisterImage",
                      "ec2:Describe*"
                  ],
                  "Resource":"*"
              }
          ]
      }
    4. Cree una directiva, asóciela a la nueva función y guárdela en el archivo JSON recién creado.

      Por ejemplo, con la interfaz de línea de comandos, ejecute un comando como el siguiente.

      El siguiente comando es un ejemplo genérico.
      aws iam put-role-policy --role-name <role-name> --policy-name <policy-name> --policy-document <file-path>

      El siguiente ejemplo específico reemplaza el marcador de posición <role-name> por un ejemplo específico de una directiva denominada vmimport, el marcador de posición <policy-name> por el ejemplo específico de la función con el nombre anterior, también denominado vmimport, y el marcador de posición <file-path> por el ejemplo específico del archivo JSON denominado anteriormente, role-policy.json.

      aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json

      Consulte la documentación de Amazon Elastic Compute Cloud para obtener más información sobre la ejecución del comando put-role-policy.

  5. Importe una instantánea del archivo VMDK importado.
    1. Cree el tercero de los tres nuevos archivos JSON necesarios para este procedimiento.
      Incluya la siguiente información en el archivo.
      • El nombre del depósito, como <bucket-name>, que se utiliza en el siguiente ejemplo.
      • El nombre del archivo VMDK que cargó en el depósito de Amazon S3, como <vmdk-file-name-uploaded-to-S3>, que se utiliza en el siguiente ejemplo.
      El propósito de este archivo JSON en particular es almacenar la instantánea del archivo VMDK importado. Asigne el nombre que desee al archivo. En este procedimiento, el nombre de archivo de ejemplo de este archivo es container.json.
      El siguiente texto es un ejemplo del contenido del archivo container.json.
      {
          "Description": "Adapter-VM",
          "Format": "vmdk",
          "UserBucket": {
              "S3Bucket": "<bucket-name>",
              "S3Key": "<vmdk-file-name-uploaded-to-S3>"
          }
      }
    2. Ejecute el comando para importar la instantánea del archivo VMDK importado al archivo JSON recién creado.
      Con la CLI, ejecute el siguiente tipo de comando.
      aws ec2 import-snapshot --role-name <role-name> --description <description> --disk-container <file-path>

      Consulte la documentación de Amazon Elastic Compute Cloud para obtener más información sobre la ejecución del comando import-snapshot.

      El siguiente comando es un ejemplo específico del comando import-snapshot, donde el parámetro role-name es opcional y no se utiliza, la descripción es "Adapter-VM" y el nombre de archivo del contenedor es container.json.
      aws ec2 import-snapshot --description "Adapter-VM" --disk-container file://container.json
      El comando import-snapshot puede tardar unos minutos en completarse. Sin embargo, después de ejecutar el comando, el comando genera un resultado, que incluye una línea ImportTaskId que puede utilizar para realizar un seguimiento del progreso de la tarea. El siguiente resultado es un ejemplo.
      {
          "ImportTaskId": "import-snap-05b4c84af4xxxxxxx",
          "Description": "Adapter-VM",
          "SnapshotTaskDetail": {
              "StatusMessage": "pending",
              "UserBucket": {
                    "S3Bucket": "awsbucket",
                   "S3Key": "edge-gw-2.3.3.0-22720582.ec2.vmdk"
               },
             "Progress": "0",
             "Status": "active",
              "Description": "Adapter-VM",
              "DiskImageSize": 0.0
          }
      
      }
    3. Tome nota del valor de ImportTaskId en el resultado del comando import-snapshot.
  6. Para realizar un seguimiento del progreso de la tarea import-snapshot y obtener el identificador de instantánea, ejecute el siguiente comando.
    aws ec2 describe-import-snapshot-tasks --import-task-ids <import-task-id>

    Reemplace el marcador de posición <import-task-id> por el valor indicado en el resultado del comando import-snapshot. El valor de ejemplo indicado en el resultado de ejemplo anterior es import-snap-05b4c84af4xxxxxxx. Consulte la documentación de Amazon Elastic Compute Cloud para obtener más información sobre la ejecución del comando describe-import-snapshot-tasks.

    El comando describe-import-snapshot-tasks proporciona un resultado que indica el progreso de la tarea import-snapshot y, cuando se completa la tarea, proporciona el identificador de instantánea, que es necesario para registrar la imagen. Por ejemplo.
    • "Progress": "43". Una línea en el resultado, como esta, indica el porcentaje de progreso de la tarea import-snapshot. En este ejemplo, la tarea está completada en un 43 %.
    • "Status": "completed". Una línea en el resultado, como esta, indica que se completó la tarea import-snapshot.
    • "SnapshotId": "snap-06d42e043bxxxxxxx". Cuando se completa la tarea, se incluye una línea en el resultado, como esta. En este ejemplo, el identificador de instantánea es snap-06d42e043bxxxxxxx.
  7. Tome nota del identificador de instantánea del resultado del comando describe-import-snapshot-tasks.
  8. Para registrar la imagen de instantánea, ejecute el comando register-image.
    aws ec2 register-image --region us-west-2 --name <image-name> --architecture x86_64 --root-device-name '/dev/sda1' --virtualization-type hvm --ena-support --block-device-mappings DeviceName=/dev/sda1,Ebs={SnapshotId=<SnapshotId>} 
    Donde debe proporcionar respuestas específicas de su implementación para cada opción, como --region, --architecture y otros valores. Consulte la documentación de Amazon Elastic Compute Cloud para obtener más información sobre la ejecución del comando register-image.

    La siguiente información es específica de la opción --name y el parámetro SnapshotId.

    • --name: proporcione un nombre para la imagen de acuerdo con las restricciones de la cadena.
    • SnapshotId: proporcione el identificador de instantánea del resultado del comando describe-import-snapshot-tasks.
    El comando register-image proporciona una salida que incluye el identificador de la AMI (Amazon Machine Image). A continuación se incluye un resultado de register-image habitual.
     {
            "ImageId": "ami-0721ee000321c4685"
        }
    La AMI indicada en la salida del comando register-image también aparece en la consola de administración de AWS entre la lista de AMI.
  9. Para admitir la creación y configuración de la instancia de AMI de Horizon Edge Gateway, prepare un script de inicio similar al siguiente ejemplo.
    #! /bin/bash
    /usr/bin/python3 /opt/vmware/bin/configure-adapter.py --sshEnable
    sudo useradd ccadmin
    echo -e 'password\npassword' | passwd ccadmin
    echo 'cs_ip cs_fqdn' >> /etc/hosts
    En el ejemplo, el script admite las siguientes configuraciones:
    • Habilitación del acceso SSH al dispositivo Horizon Edge Gateway.
    • Creación de una cuenta de usuario de ccadmin en el dispositivo con la contraseña definida (<contraseña>\n<contraseña>). Asegúrese de definir una contraseña segura. Las contraseñas seguras tienen al menos 8 caracteres y deben incluir uno o varios números, letras mayúsculas y minúsculas, y caracteres especiales.
    • Resolución del nombre de host de Connection Server (cs_fqdn) en la dirección IP de Connection Server (cs_ip).

    Debe agregar este script a user-data en el siguiente paso, en el que iniciará la instancia de AMI de Horizon Edge Gateway.

  10. Inicie la instancia de AMI para Horizon Edge Gateway.
    Nota: Para asegurarse de que la instancia de proporciona suficientes capacidades, utilice el modelo c5.2xlarge o una versión posterior.

    Puede iniciar una instancia mediante la CLI o la consola de administración de AWS. En cualquier caso, utilice el identificador de imagen de máquina de Amazon (AMI) proporcionado en la salida del comando register-image y agregue el script de inicio que preparó en el paso anterior a user-data.

    Nota: Debe agregar el script de inicio en este momento porque user-data solo se ejecuta en la primera secuencia de arranque de la instancia de AMI.

    Para utilizar la CLI, consulte la documentación de Amazon Elastic Compute Cloud para obtener más información sobre la ejecución del comando run-instances.

    Para utilizar la consola de administración de AWS, consulte la documentación de Amazon Elastic Compute Cloud para obtener más información, como iniciar una instancia de mediante el asistente de inicio de instancias.

    Si decide iniciar la instancia de mediante la consola de administración de AWS, busque la nueva AMI mediante el identificador de imagen, seleccione la AMI y haga clic en Iniciar. A continuación, puede continuar a través del asistente proporcionando los detalles específicos de la implementación.

  11. Después de iniciar la AMI de Horizon Edge Gateway, edite la configuración de la instancia de máquina virtual y elimine el script de inicio.
  12. Acceda mediante SSH a la instancia de AWS de máquina virtual de Horizon Edge Gateway.

    Para utilizar la CLI o la consola de administración de AWS, consulte la documentación de Amazon Elastic Compute Cloud para obtener más información sobre la conexión a la instancia. Se recomienda utilizar SSH para permitir copiar y pegar la clave de emparejamiento.

    Para obtener información relacionada, consulte Habilitar el acceso de SSH para Horizon Edge.

    Para obtener información relacionada, consulte también Conexión con la instancia de Linux y Conéctese a la instancia de Linux con EC2 Instance Connect en la documentación del producto de AWS.

  13. Ejecute un script de Edge de emparejamiento con el siguiente formato de comando, donde código_emparejamiento es el código de emparejamiento que copió de la captura de pantalla del paso 9 que se describe en Implementar una instancia de Horizon Edge para usarla con implementaciones de Horizon 8 y el plano de control de Horizon Cloud Service - next-gen:

    sudo /opt/vmware/sbin/pair-edge.sh 'código_emparejamiento'

  14. Para mejorar la seguridad, considere la posibilidad de desactivar SSH cuando haya completado estos pasos.
  15. Vuelva a Horizon Universal Console para completar la configuración de los detalles de Horizon Connection Server. Consulte Implementar una instancia de Horizon Edge para usarla con implementaciones de Horizon 8 y el plano de control de Horizon Cloud Service - next-gen.