Tutorial: Creación de plantillas de Resource Manager con recursos dependientes
Aprenda a crear una plantilla de Azure Resource Manager (ARM) para implementar varios recursos y configurar la orden de implementación. Después de crear la plantilla, puede implementarla mediante Azure Cloud Shell en Azure Portal.
En este tutorial, creará una cuenta de almacenamiento, una máquina virtual, una red virtual y algunos otros recursos dependientes. Algunos de los recursos no se pueden implementar hasta que existe otro recurso. Por ejemplo, no se puede crear la máquina virtual hasta que existe su cuenta de almacenamiento y la interfaz de red. Esta relación se define al marcar un recurso como dependiente de los otros. Administrador de recursos evalúa las dependencias entre recursos y los implementa en su orden dependiente. Cuando no hay recursos dependientes entre sí, Resource Manager los implementa en paralelo. Para más información consulte Definición del orden de implementación de recursos en plantillas de Azure Resource Manager.
En este tutorial se describen las tareas siguientes:
- Abra una plantilla de inicio rápido.
- Exploración de la plantilla
- Implementación de la plantilla
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Para un módulo de Learn que abarca las dependencias de los recursos, consulte Administración de implementaciones complejas en la nube mediante características avanzadas de la plantilla de ARM.
Prerrequisitos
Para completar este artículo, necesitará lo siguiente:
Visual Studio Code con la extensión Resource Manager Tools. Consulte Quickstart: Creación de plantillas de ARM mediante Visual Studio Code.
Para aumentar la seguridad, utilice una contraseña generada para la cuenta de administrador de máquina virtual. Puede usar Azure Cloud Shell ejecutar el siguiente comando en PowerShell o Bash:
openssl rand -base64 32
Para más información, ejecute
man openssl rand
para abrir la página manual.Azure Key Vault está diseñado para proteger las claves criptográficas y otros secretos. Para más información, consulte el Tutorial: Integración de Azure Key Vault en la implementación de la plantilla de Resource Manager. También se recomienda actualizar la contraseña cada tres meses.
Abra una plantilla de inicio rápido.
Plantillas de inicio rápido de Azure es un repositorio de plantillas de Azure Resource Manager. En lugar de crear una plantilla desde cero, puede buscar una plantilla de ejemplo y personalizarla. La plantilla que se usa en este tutorial se denomina Deploy a simple Windows VM.
En Visual Studio Code, seleccione Archivo>Abrir archivo.
En Nombre de archivo, pegue el código URL siguiente:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
Seleccione Abrir para abrir el archivo.
Seleccione Archivo>Guardar como para guardar una copia del archivo en la máquina local con el nombre azuredeploy.json.
Exploración de la plantilla
Al explorar la plantilla de esta sección, intente responder estas preguntas:
- ¿Cuántos recursos de Azure se definen en esta plantilla?
- Uno de los recursos es una cuenta de Azure Storage. ¿Se parece la definición a la que se usó en el último tutorial?
- ¿Encuentra las referencias de la plantilla para los recursos definidos en esta plantilla?
- ¿Encuentra las dependencias de los recursos?
En Visual Studio Code, contraiga los elementos hasta que vea únicamente los elementos de primer nivel y los de segundo nivel dentro de
resources
:La plantilla define seis recursos:
Microsoft.Compute/virtualMachines.
Puede resultar útil revisar la referencia de la plantilla antes de personalizar una plantilla.
Expanda el primer recurso. Es una cuenta de almacenamiento. Compare la definición del recurso con la referencia de la plantilla.
Expanda el segundo recurso. El tipo de recurso es
Microsoft.Network/publicIPAddresses
. Compare la definición del recurso con la referencia de la plantilla.Expanda el tercer recurso. El tipo de recurso es
Microsoft.Network/networkSecurityGroups
. Compare la definición del recurso con la referencia de la plantilla.Expanda el cuarto recurso. El tipo de recurso es
Microsoft.Network/virtualNetworks
:El elemento
dependsOn
le permite definir un recurso como dependiente de uno o varios recursos. Este recurso depende de otro recurso:Microsoft.Network/networkSecurityGroups
Expanda el quinto recurso. El tipo de recurso es
Microsoft.Network/networkInterfaces
. El recurso depende de otros dos recursos:Microsoft.Network/publicIPAddresses
Microsoft.Network/virtualNetworks
Expanda el sexto recurso. Este recurso es una máquina virtual. Depende de otros dos recursos:
Microsoft.Storage/storageAccounts
Microsoft.Network/networkInterfaces
El siguiente diagrama muestra los recursos y la información de dependencia de esta plantilla:
Mediante la especificación de las dependencias, Resource Manager implementa de forma eficaz la solución. Este implementa la cuenta de almacenamiento, la dirección IP pública y la red virtual en paralelo porque no tienen ninguna dependencia. Una vez implementadas la dirección IP y la red virtual, se crea la interfaz de red. Cuando se han implementado los recursos restantes, Resource Manager implementa la máquina virtual.
Implementación de la plantilla
Inicie sesión en Cloud Shell.
Elija el entorno que prefiera; para ello, seleccione PowerShell o Bash (para CLI) en la esquina superior izquierda. Es necesario reiniciar el shell cuando realiza el cambio.
Seleccione Cargar/descargar archivos y, después, seleccione Cargar. Consulte la captura de pantalla anterior. Seleccione el archivo que guardó anteriormente. Después de cargar el archivo, puede usar el comando
ls
y el comandocat
para comprobar que la operación de carga se haya realizado correctamente.Ejecute el siguiente script de PowerShell para implementar la plantilla.
echo "Enter a project name that is used to generate resource group name:" && read projectName && echo "Enter the location (i.e. centralus):" && read location && echo "Enter the virtual machine admin username:" && read adminUsername && echo "Enter the DNS label prefix:" && read dnsLabelPrefix && resourceGroupName="${projectName}rg" && az group create --name $resourceGroupName --location $location && az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json" --parameters adminUsername=$adminUsername dnsLabelPrefix=$dnsLabelPrefix
RDP a la máquina virtual para comprobar que la máquina virtual se ha creado correctamente.
Limpieza de recursos
Cuando los recursos de Azure ya no sean necesarios, limpie los recursos que implementó eliminando el grupo de recursos.
- En Azure Portal, seleccione Grupos de recursos en el menú de la izquierda.
- Escriba el nombre del grupo de recursos en el campo Filtrar por nombre.
- Seleccione el nombre del grupo de recursos. Verá un total de seis recursos en el grupo de recursos.
- Seleccione Eliminar grupo de recursos del menú superior.
Pasos siguientes
En este tutorial, ha desarrollado e implementado una plantilla para crear una máquina virtual, una red virtual y los recursos dependientes. Para aprender a usar los scripts de implementación para realizar operaciones antes y después de esta, consulte: