Este proyecto forma parte de mi aprendizaje de Azure Bicep y muestra cómo desplegar una infraestructura completa en Azure utilizando Infraestructura como Código (IaC).
El template automatiza la creación de una red virtual, subredes, una máquina virtual, Azure Bastion, DNS privado y almacenamiento seguro.
El archivo principal (main.bicep) crea los siguientes recursos:
- Virtual Network (VNet) con tres subredes:
Subnet1para la VM.Subnet2adicional para futuras implementaciones.AzureBastionSubnetpara el servicio de Bastion.
- Azure Bastion Host con IP pública estática.
- Private DNS Zone vinculada a la red virtual.
- Storage Account con:
- Seguridad TLS 1.2.
- Acceso solo mediante HTTPS.
- Un File Share configurado automáticamente.
- Máquina Virtual (Ubuntu 20.04) con red privada.
- Tags de entorno (
DevoProd) aplicados a todos los recursos.
Este proyecto tiene como meta reforzar los conceptos de:
- Parámetros y variables en Bicep.
- Creación de dependencias entre recursos (
dependsOn). - Referencias entre módulos (por ejemplo, subredes y NIC).
- Buenas prácticas en nombrado, seguridad y modularidad.
- Uso de recursos con diferentes API versions de Azure.
| Parámetro | Descripción | Ejemplo |
|---|---|---|
Tags |
Entorno de despliegue (Dev o Prod) |
"Dev" |
VirtualNetworkName |
Nombre de la red virtual | "vnet-demo" |
Location |
Región de Azure | "eastus" |
VnetAddressPrefixes |
Prefijo de dirección de la VNet | "172.16.0.0/16" |
Subnet1 |
Nombre de la subred principal | "subnet-vm" |
privatednszoneName |
Nombre de la zona DNS privada | "privatelab.local" |
AdminUsername |
Usuario administrador de la VM | "azureuser" |
AdminPassword |
Contraseña segura de la VM | "P@ssw0rd1234" |
💡 Nota: Algunos nombres de recursos usan
uniqueString()para evitar conflictos entre despliegues.
- Inicia sesión en Azure:
az login- Creacion de un ResourceGroup:
az group create --name rg-bicep-lab --location eastus- Despliegue utilizando Azure CLI
az deployment group create \
--resource-group rg-bicep-lab \
--template-file main.bicep \
--parameters Tags=Dev \
VirtualNetworkName=vnet-lab \
Location=eastus \
VnetAddressPrefixes=172.16.0.0/16 \
Subnet1=subnet-vm \
privatednszoneName=privatelab.local \
AdminUsername=azureuser \
AdminPassword=P@ssw0rd1234