Implementación de una instancia local de Windows Server hospedada por Vagrant y conexión a Azure Arc

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

Prerrequisitos

  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 que está instalada.

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

    1. Instale VirtualBox.

      • Si es usuario de macOS, ejecute brew cask install virtualbox.
      • Si es usuario de Windows, puede usar el paquete de Chocolatey.
      • Si es usuario de Linux, puede encontrar todos los métodos de instalación de paquetes aquí.
    2. Instale Vagrant.

      • Si es usuario de macOS, ejecute brew cask install vagrant.
      • Si es usuario de Windows, puede usar el paquete de Chocolatey.
      • Si es usuario de Linux, mire aquí.
  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 ad sp create-for-rbac -n "<Unique SP Name>" --role contributor
    

    Por ejemplo:

    az ad sp create-for-rbac -n "http://AzureArcServers" --role contributor
    

    La salida debe ser similar a la que se muestra a continuación:

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

    Nota

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

  • 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 PowerShell scripts/vars.ps1 para que coincida con la entidad de servicio de Azure que ha creado.

    • 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 de 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 necesitan un archivo vagrantfile y una de Vagrant. En líneas generales, la implementación hará lo siguiente:

  • Descargar la caja de Vagrant del archivo de imagen de Windows 10
  • Ejecutar el script de instalación de Azure Arc

Después de editar el script scripts/vars.ps1 para que coincida con su entorno, desde la carpeta Vagrantfile, ejecute vagrant up. Como es la primera vez que se crea la máquina virtual, la primera ejecución será mucho más lenta que las siguientes. Esto se debe a que la implementación está descargando la caja de Windows 10 por primera vez.

Captura de pantalla de la ejecución del comando "vagrant up".

Una vez completada la descarga, se iniciará el aprovisionamiento real. Tal y como se muestra en la siguiente captura de pantalla, el proceso puede tardar entre 7 y 10 minutos.

Captura de pantalla de un comando "vagrant up" completado.

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

Captura de pantalla de un servidor habilitado para Azure Arc en Azure Portal.

Captura de pantalla de los detalles de un servidor habilitado para Azure Arc en Azure Portal.

Implementación semiautomatizada (opcional)

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

Otra captura de pantalla de un comando "vagrant up" completado.

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

  1. En el script de PowerShell 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.

    Captura de pantalla del script de PowerShell "install_arc_agent"

    Captura de pantalla del comando "az group create".

  2. Conéctese mediante RDP a la máquina virtual con el comando vagrant rdp. Utilice vagrant/vagrant como nombre de usuario y contraseña.

    Captura de pantalla de acceso a un servidor de Vagrant con el protocolo de Escritorio remoto de Microsoft.

  3. Abra PowerShell ISE como administrador y edite el archivo C:\runtime\vars.ps1 con las variables de entorno.

    Captura de pantalla de Windows PowerShell ISE.

  4. Pegue el comando Invoke-Expression C:\runtime\vars.ps1, el comando az group create --location $env:location --name $env:resourceGroup --subscription $env:subscriptionId y el mismo comando azcmagent connect y ejecute el script.

    Captura de pantalla de PowerShell ISE donde se ejecuta un script.

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 ejecuta el comando para eliminar el grupo de recursos de Azure antes de destruir la máquina virtual real.

Captura de pantalla del comando "vagrant destroy".