Login-AzureRMAccount # Get-AzureRMSubscription | Select Name # Este comando permite obtener el nombre de la suscripción $subscr="Pay-As-You-Go" # Confirmar nombre de subscripción $rgName="GrupoDeRecursos_2013" $locName="East US" # Dependiendo de la ubicación puede ser recomendable cambiar esto $cred=Get-Credential -Message "Ingrese nombre y contraseña para el usuario administrador local de las VMs." write-host "Seleccionando subscripción $subscr..." -ForegroundColor green Get-AzureRmSubscription | ?{$_.name -like "*pay-as*"} | Select-AzureRmSubscription write-host "Creando Grupo de recursos para el laboratorio..." -ForegroundColor green New-AzureRMResourceGroup -Name $rgName -Location $locName # Virtual Network write-host "Configurando Red Virtual..." -ForegroundColor green $locName=(Get-AzureRmResourceGroup -Name $rgName).Location $corpnetSubnet=New-AzureRMVirtualNetworkSubnetConfig -Name Corpnet_2013 -AddressPrefix 192.168.1.0/24 New-AzureRMVirtualNetwork -Name TestLab_2013 -ResourceGroupName $rgName -Location $locName -AddressPrefix 192.168.0.0/16 -Subnet $corpnetSubnet -DNSServer 192.168.1.20 $rule1=New-AzureRMNetworkSecurityRuleConfig -Name "RDPTraffic" -Description "Allow RDP to all VMs on the subnet" -Access Allow -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 New-AzureRMNetworkSecurityGroup -Name Corpnet_2013 -ResourceGroupName $rgName -Location $locName -SecurityRules $rule1 $vnet=Get-AzureRMVirtualNetwork -ResourceGroupName $rgName -Name TestLab_2013 $nsg=Get-AzureRMNetworkSecurityGroup -Name Corpnet_2013 -ResourceGroupName $rgName Set-AzureRMVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name Corpnet_2013 -AddressPrefix "192.168.1.0/24" -NetworkSecurityGroup $nsg write-host "Creando VM DC1..." -ForegroundColor green $vnet=Get-AzureRMVirtualNetwork -Name TestLab_2013 -ResourceGroupName $rgName $pip=New-AzureRMPublicIpAddress -Name DC1-PIP -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic $nic=New-AzureRMNetworkInterface -Name DC1-NIC -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -PrivateIpAddress 192.168.1.20 $vm=New-AzureRMVMConfig -VMName DC1 -VMSize Standard_A1 $vm=Set-AzureRMVMOperatingSystem -VM $vm -Windows -ComputerName DC1 -Credential $cred -ProvisionVMAgent -EnableAutoUpdate $vm=Set-AzureRMVMSourceImage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2012-R2-Datacenter -Version "latest" $vm=Add-AzureRMVMNetworkInterface -VM $vm -Id $nic.Id $vm=Set-AzureRmVMOSDisk -VM $vm -Name "DC1-OS" -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType "Standard_LRS" $diskConfig=New-AzureRmDiskConfig -AccountType "Standard_LRS" -Location $locName -CreateOption Empty -DiskSizeGB 20 $dataDisk1=New-AzureRmDisk -DiskName "DC1-DataDisk1" -Disk $diskConfig -ResourceGroupName $rgName $vm=Add-AzureRmVMDataDisk -VM $vm -Name "DC1-DataDisk1" -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1 New-AzureRMVM -ResourceGroupName $rgName -Location $locName -VM $vm -AsJob write-host "Creando VM EX2013..." -ForegroundColor green $vnet=Get-AzureRMVirtualNetwork -Name TestLab_2013 -ResourceGroupName $rgName $pip=New-AzureRMPublicIpAddress -Name EX2013-PIP -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic $nic=New-AzureRMNetworkInterface -Name EX2013-NIC -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -PrivateIpAddress 192.168.1.30 $vm=New-AzureRMVMConfig -VMName EX2013 -VMSize Standard_D1_v2 $vm=Set-AzureRMVMOperatingSystem -VM $vm -Windows -ComputerName EX2013 -Credential $cred -ProvisionVMAgent -EnableAutoUpdate $vm=Set-AzureRMVMSourceImage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2012-R2-Datacenter -Version "latest" $vm=Add-AzureRMVMNetworkInterface -VM $vm -Id $nic.Id $vm=Set-AzureRmVMOSDisk -VM $vm -Name "EX2013-OS" -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType "Standard_LRS" New-AzureRMVM -ResourceGroupName $rgName -Location $locName -VM $vm -AsJob write-host "Creando VM EX2016..." -ForegroundColor green $vnet=Get-AzureRMVirtualNetwork -Name TestLab_2013 -ResourceGroupName $rgName $pip=New-AzureRMPublicIpAddress -Name EX2016-PIP -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic $nic=New-AzureRMNetworkInterface -Name EX2016-NIC -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -PrivateIpAddress 192.168.1.40 $vm=New-AzureRMVMConfig -VMName EX2016 -VMSize Standard_D2_v2 $vm=Set-AzureRMVMOperatingSystem -VM $vm -Windows -ComputerName EX2016 -Credential $cred -ProvisionVMAgent -EnableAutoUpdate $vm=Set-AzureRMVMSourceImage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter -Version "latest" $vm=Add-AzureRMVMNetworkInterface -VM $vm -Id $nic.Id $vm=Set-AzureRmVMOSDisk -VM $vm -Name "EX2016-OS" -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType "Standard_LRS" New-AzureRMVM -ResourceGroupName $rgName -Location $locName -VM $vm -AsJob write-host "Creando VM CL1..." -ForegroundColor green $vnet=Get-AzureRMVirtualNetwork -Name TestLab_2013 -ResourceGroupName $rgName $pip=New-AzureRMPublicIpAddress -Name CL1-PIP -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic $nic=New-AzureRMNetworkInterface -Name CL1-NIC -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -PrivateIpAddress 192.168.1.50 $vm=New-AzureRMVMConfig -VMName CL1 -VMSize Standard_D1_v2 $vm=Set-AzureRMVMOperatingSystem -VM $vm -Windows -ComputerName CL1 -Credential $cred -ProvisionVMAgent -EnableAutoUpdate $vm=Set-AzureRMVMSourceImage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter -Version "latest" $vm=Add-AzureRMVMNetworkInterface -VM $vm -Id $nic.Id $vm=Set-AzureRmVMOSDisk -VM $vm -Name "CL1-OS" -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType "Standard_LRS" New-AzureRMVM -ResourceGroupName $rgName -Location $locName -VM $vm -AsJob write-host "Finalizando la implementación del laboratorio. Esto puede tardar varios minutos..." -ForegroundColor green Get-Job | Wait-Job write-host "Deteniendo las VMs para minimizar costos..." -ForegroundColor green Get-AzureRmVM | Stop-AzureRmVM -Confirm:$false -Force