Implementación de un servidor Ubuntu local hospedado con Vagrant y su conexión a Azure Arc

En este artículo, se proporcionan instrucciones para implementar una máquina virtual Ubuntu local mediante Vagrant y conectarla como un recurso de servidor habilitado para Azure Arc.

Requisitos previos

  1. Clone el repositorio Jumpstart de Azure Arc.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Instale o actualice la CLI de Azure a la versión 2.7 y superior. Use el siguiente comando para comprobar la versión instalada actual.

    az --version
    
  3. Vagrant se basa en un hipervisor subyacente. En esta guía, vamos a usar Oracle VM VirtualBox.

    1. Instale VirtualBox.

    2. Instalación de Vagrant

  4. Cree una entidad de servicio de Azure.

    Para conectar la máquina virtual de Vagrant a Azure Arc, se requiere una entidad de servicio de Azure con el rol de colaborador. Para crearla, inicie sesión en su cuenta de Azure y ejecute el siguiente comando. También puede ejecutar este comando en Azure Cloud Shell.

    az login
    az account set -s <Your Subscription ID>
    az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor --scopes "/subscriptions/<Your Subscription ID>"
    

    Por ejemplo:

    az ad sp create-for-rbac -n "http://AzureArcServers" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    El resultado debe ser similar al siguiente:

    {
      "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "displayName": "http://AzureArcServers",
      "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    }
    

    Nota:

    Recomendamos encarecidamente que limite la entidad de servicio a un grupo de recursos y una suscripción de Azure específicos.

  5. El archivo Vagrant ejecuta un script en el sistema operativo de la máquina virtual para instalar todos los artefactos necesarios e insertar variables de entorno. Edite el script de shell scripts/vars.sh para que coincida con la entidad de servicio de Azure que creó.

    • subscriptionId: identificador de la suscripción de Azure
    • appId: nombre de la entidad de servicio de Azure.
    • password: contraseña de la entidad de servicio de Azure.
    • tenantId: identificador del inquilino de Azure.
    • resourceGroup: nombre del grupo de recursos de Azure.
    • location: región de Azure

Implementación

Al igual que cualquier implementación de Vagrant, se necesita un archivo vagrantfile y un cuadro de Vagrant. En líneas generales, la implementación hará lo siguiente:

  • Descargar el cuadro de Vagrant del archivo de imagen de Ubuntu 16.04.
  • Ejecutar el script de instalación

Después de editar el script scripts/vars.sh para que coincida con su entorno, en la carpeta Vagrantfile, ejecute vagrant up. Dado que esta es la primera vez que se crea la máquina virtual, la primera ejecución será mucho más lenta que las que siguen, ya que la implementación está descargando el cuadro de Ubuntu por primera vez.

A screenshot of the vagrant up command.

Finalizada la descarga, comienza el aprovisionamiento. Como se muestra en la siguiente captura de pantalla, el proceso no tarda más de tres minutos.

A screenshot of a completed vagrant up command.

Al finalizar, tendrá una máquina virtual Ubuntu local implementada, conectada como un nuevo servidor habilitado para Azure Arc, dentro de un nuevo grupo de recursos.

A screenshot of an Azure Arc-enabled server in the Azure portal.

A screenshot of details from an Azure Arc-enabled server in the Azure portal.

Implementación semiautomatizada (opcional)

El último paso es registrar la máquina virtual como un nuevo recurso de servidor habilitado para Azure Arc.

Another screenshot of the vagrant up command.

Si quiere demostrar o controlar el proceso de registro real, haga lo siguiente:

  1. En el script de shell install_arc_agent, convierta en comentario la sección run connect command y guarde el archivo. También puede convertir en comentario o cambiar la creación del grupo de recursos.

    A screenshot of the azcmagent connect command.

    A screenshot of the az group create command.

  2. Conéctese mediante SSH a la máquina virtual con el comando vagrant ssh.

    A screenshot of an SSH key connecting to the Vagrant machine.

  3. Ejecute el mismo comando azcmagent connect que ha convertido en comentado con las variables de entorno.

    Another screenshot of the azcmagent connect command.

Eliminar la implementación

Para eliminar toda la implementación, ejecute el comando vagrant destroy -f. El archivo vagrantfile incluye el desencadenador de Vagrant before: destroy, que ejecutará un script para eliminar el grupo de recursos de Azure antes de destruir la máquina virtual real.

A screenshot of the vagrant destroy command.