Uso de una plantilla de Azure Resource Manager para implementar y conectar una máquina virtual Ubuntu en Azure Arc
Este artículo es una guía sobre el uso de una plantilla de Azure Resource Manager plantilla de ARM para incorporar automáticamente una máquina virtual Ubuntu a Azure Arc. La plantilla de ARM proporcionada es responsable de la creación de los recursos de Azure y la ejecución del script de incorporación de Azure Arc en la máquina virtual.
Las máquinas virtuales de Azure usan Azure Instance Metadata Service (IMDS) de manera predeterminada. Al proyectar una máquina virtual de Azure como servidor habilitado para Azure Arc, se crea un conflicto que no permite que los recursos del servidor de Azure Arc se representen como uno cuando se usa IMDS. Por el contrario, el servidor de Azure Arc sigue "actuando" como máquina virtual nativa de Azure.
Esta guía le va a permitir usar e incorporar máquinas virtuales de Azure en Azure Arc solo con fines de demo. Va a tener la posibilidad de simular un servidor implementado fuera de Azure, por ejemplo, en el entorno local o en otras plataformas en la nube.
Nota
No se espera que una máquina virtual de Azure se proyecte como servidor habilitado para Azure Arc. El siguiente escenario no se admite y solo se debe usar para fines de demostración y pruebas.
Prerrequisitos
Clone el repositorio Jumpstart de Azure Arc.
git clone https://github.com/microsoft/azure_arc.git
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
Suscripción de Azure: si no tiene una suscripción de Azure, puede crear una cuenta gratuita de Azure.
Cree una entidad de servicio de Azure.
Para implementar los recursos de Azure mediante la plantilla de ARM se requiere una entidad de servicio de Azure con el rol Colaborador. Para su creación, inicie sesión en la 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:
Se recomienda encarecidamente que el ámbito de la entidad de servicio se establezca en un grupo de recursos y una suscripción de Azure específicos.
Flujo de automatización
A continuación se ofrece una explicación que va a permitirle familiarizarse con el flujo de automatización e implementación.
Un usuario edita el archivo de parámetros de la plantilla de ARM (edición única). Estos valores de parámetro se usan a lo largo de toda la implementación.
La plantilla de ARM incluye una extensión de script personalizado de máquina virtual de Azure que va a implementar el script de shell
install_arc_agent.sh
.Con el fin de permitir que la máquina virtual de Azure se proyecte correctamente como un servidor habilitado para Azure Arc, el script hace lo siguiente:
Establecer las variables de entorno locales del sistema operativo.
Generar un archivo
~/.bash_profile
que se inicializa en el primer inicio de sesión del usuario para configurar el entorno. Este script le permitirá hacer lo siguiente:Detener y deshabilitar el servicio del agente invitado de Azure para Linux.
Crear una nueva regla de firewall de SO para bloquear el tráfico de salida de Azure IMDS a la dirección remota
169.254.169.254
.Instalar el agente de la máquina conectada a Azure Arc.
Quitar el archivo
~/.bash_profile
para que no se ejecute después del primer inicio de sesión.
Un usuario aplica SSH a la máquina virtual Linux, que inicia la ejecución del script
~/.bash_profile
e incorpora la máquina virtual a Azure Arc.Nota
El script de shell
install_arc_agent.sh
habilita el firewall del sistema operativo y configura nuevas reglas para las conexiones entrantes y salientes. De manera predeterminada, se permite todo el tráfico entrante y saliente, excepto el bloqueo del tráfico de salida de Azure IMDS a la dirección remota169.254.169.254
.
Implementación
Como se ha mencionado, esta implementación va a usar plantillas de ARM. Va a implementar una sola plantilla, responsable de la creación de todos los recursos de Azure en un único grupo de recursos y de la incorporación de la máquina virtual creada a Azure Arc.
Antes de implementar la plantilla de ARM, inicie sesión mediante la CLI de Azure con el comando
az login
.La implementación usa el archivo de parámetros de la plantilla de ARM. Antes de iniciar la implementación, edite el archivo
azuredeploy.parameters.json
que se encuentra en la carpeta local del repositorio clonado. Aquí va a encontrar un archivo de parámetros de ejemplo.Para implementar la plantilla de ARM, vaya a la carpeta de implementación clonada local y ejecute el siguiente comando:
az group create --name <Name of the Azure resource group> --location <Azure region> --tags "Project=jumpstart_azure_arc_servers" az deployment group create \ --resource-group <Name of the Azure resource group> \ --name <The name of this deployment> \ --template-uri https://raw.githubusercontent.com/microsoft/azure_arc/main/azure_arc_servers_jumpstart/azure/linux/arm_template/azuredeploy.json \ --parameters <The `azuredeploy.parameters.json` parameters file location>
Nota
Asegúrese de usar el mismo nombre de grupo de recursos de Azure que el del archivo
azuredeploy.parameters.json
.Por ejemplo:
az group create --name Arc-Servers-Linux-Demo --location "westeurope" --tags "Project=jumpstart_azure_arc_servers" az deployment group create \ --resource-group Arc-Servers-Linux-Demo \ --name arclinuxdemo \ --template-uri https://raw.githubusercontent.com/microsoft/azure_arc/main/azure_arc_servers_jumpstart/azure/linux/arm_template/azuredeploy.json \ --parameters azuredeploy.parameters.json
Una vez aprovisionados los recursos de Azure, aparecen en Azure Portal.
Inicio de sesión de Linux y fase posterior a la implementación
Ahora que se ha creado la máquina virtual Linux, el siguiente paso es conectarse a ella. Con su dirección IP pública, aplique SSH a la máquina virtual.
Después de iniciar sesión por primera vez, como se ha mencionado en la sección Flujo de automatización, se ejecuta un script de inicio de sesión. Este script se ha creado como parte del proceso de implementación automatizado.
Deje que se ejecute el script y no cierre la sesión de SSH. La sesión se cierra automáticamente cuando termina.
Una vez que termine correctamente, se agregará un nuevo servidor habilitado para Azure Arc al grupo de recursos.
Limpieza
Para eliminar toda la implementación, elimine el grupo de recursos de Azure Portal.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente las Cuestiones de GitHub como mecanismo de retroalimentación para el contenido y lo sustituiremos por un nuevo sistema de retroalimentación. Para más información, consulta:Enviar y ver comentarios de