Microsoft Azure – Criar Ambiente via Powershell

Olá pessoal, tudo bem com vocês?

Nesse ultimo artigo iremos fazer o deploy de um ambiente completo via powershell. A intensão com essa seria de artigo, foi para auxiliar vocês na criação de cada recurso e depois de uma forma automatizada, ajudar na entrega de projetos ou iniciar projetos com powershell.

Azure-Script

O que contém nesse script:

  • Resource Group;
  • Storage Account;
  • File Share;
  • Containers para Logs;
  • Criação de Rede;
  • Criação de Máquina Virtual;
  • Criação Placa de rede;
  • Criação do Network Security Group;

Agora vamos lá, fazer a mágica acontecer rsrsrsrsrs

Gravei um vídeo com o tempo de execução do script, para vocês terem um noção de como é simples e rápido a criação. Esse script é ideal em cenários de início de projeto, onde você já tem o seu escopo pronto.

Script:

#Configurando Resource Group
$rgName= "RG_CloudShell"
$locName= "East US 2"
New-AzResourceGroup -Name $rgName -Location $locName -Tag @{Departmento="IT"}
New-AzResourceGroup -Name "RG_CloudShell" -Location "East US 2"

#Criação do Storage
$rgName= "RG_CloudShell"
$locName= "East US 2"
$STRName= "strpwjatoba02"
$TypeSTR= "Standard_LRS"
New-AzStorageAccount -ResourceGroupName $rgName -Name $STRName -Type $TypeSTR -Location $locName

#Criando um Container via Powershell
$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $STRName
$containerName = "logs"
$ctx = $storageAccount.Context
New-AzStorageContainer -Name $containerName -Context $ctx -Permission blob

#Criando FileShare 
$storageAccount = Get-AzStorageAccount -ResourceGroupName "RG_CloudShell" -Name "strpwjatoba02"
$storageKey = (Get-AzStorageAccountKey -ResourceGroupName $storageAccount.ResourceGroupName -Name $storageAccount.StorageAccountName | select -first 1).Value
$storageContext = New-AzStorageContext -StorageAccountName $storageAccount.StorageAccountName -StorageAccountKey $storageKey
New-AzureStorageShare -Name "jatobafileshare" -Context $storageContext

#Criação de Rede
New-AzVirtualNetwork -Name "VNet-001" -ResourceGroupName "RG_CloudShell" -Location "East US 2" -AddressPrefix 192.168.5.0/24

$VirtualNetwork = Get-AzVirtualNetwork -Name "VNet-001" -ResourceGroupName "RG_CloudShell"

Add-AzVirtualNetworkSubnetConfig -Name BackEnd -VirtualNetwork $VirtualNetwork -AddressPrefix 192.168.5.0/26
Add-AzVirtualNetworkSubnetConfig -Name FrontEnd -VirtualNetwork $VirtualNetwork -AddressPrefix 192.168.5.64/26
Add-AzVirtualNetworkSubnetConfig -Name DMZ -VirtualNetwork $VirtualNetwork -AddressPrefix 192.168.5.128/28
Add-AzVirtualNetworkSubnetConfig -Name GatewaySubnet -VirtualNetwork $VirtualNetwork -AddressPrefix 192.168.5.144/28

Set-AzVirtualNetwork -VirtualNetwork $VirtualNetwork

#Criação de VM
# Definir valores para recurso existente nomes de conta de grupo e armazenamento.
$rgName="RG_CloudShell
$locName="East US 2"
$STRName="strpwjatoba02"
$nsgName ="NSG-VM-01"

#Pedir credenciais VM
#$cred=Get-Credential -Message "Digite o nome e a senha da conta de administrador local."

$VMLocalAdminUser = "administrador"
$VMLocalAdminSecurePassword = ConvertTo-SecureString "Jatoba@2020" -AsPlainText -Force 
$cred=New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);

# Definir o índice de rede e sub-rede virtual existente.
$vnetName="VNet-001"
$subnetIndex=0
$vnet=Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgName
  
# Criar o NIC com IP público.
$nicName="VM-001"
$pip=New-AzPublicIpAddress -Name $nicName -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic
$nic=New-AzNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[$subnetIndex].Id -PublicIpAddressId $pip.Id
  
# Criar o NIC sem IP público.
$nicName="VM-001"
$vnet=Get-AzVirtualNetworkSubnetConfig -Name Backend -VirtualNetwork $vnet
$nic=New-AzNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Id
$pip.Id

#Adicionando NSG(Grupo de Segurança)
$rules = New-AzNetworkSecurityRuleConfig -Name 'default-allow-rdp' -Direction Inbound -Priority 1000 -Access Allow -SourceAddressPrefix '*'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange 3389 -Protocol Tcp 
$nsg = New-AzNetworkSecurityGroup -Name $nsgName -ResourceGroupName $rgName -Location $locName -SecurityRules $rules

# Especificar o Nome e tamanho.
$vmName="VM-001"
$vmSize="Standard_DS3_v2"
$vm=New-AzVMConfig -VMName $vmName -VMSize $vmSize
  
# Especificar a imagem e a conta de administrador local e em seguida, adicione o NIC.
$pubName="MicrosoftWindowsServer"
$offerName="WindowsServer"
$skuName="2019-Datacenter"
$vm=Set-AzVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm=Set-AzVMSourceImage -VM $vm -PublisherName $pubName -Offer $offerName -Skus $skuName -Version "latest"
$vm=Add-AzVMNetworkInterface -VM $vm -Id $nic.Id
  
# Especifique o nome de disco do sistema operacional e criar a VM
$diskName="OSDisk"
$storageAcc=Get-AzStorageAccount -ResourceGroupName $rgName -Name $STRName
$osDiskUri=$storageAcc.PrimaryEndpoints.Blob.ToString() + "vhds/" + $vmName + $diskName + ".vhd"
$vm=Set-AzVMOSDisk -VM $vm -Name $diskName -VhdUri $osDiskUri -CreateOption fromImage
New-AzVM -ResourceGroupName $rgName -Location $locName -VM $vm

Obrigado pessoal, espero que tenham gostado dessa serie de artigos.

Até o próximo post.

Sobre Michel Jatoba

Veja Também...

Microsoft Azure – Criando Placa de Rede via Powershell

Olá pessoal, tudo bem com vocês? Dando continuidade na nossa serie de artigos de como …

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

XPTO-WPC-MONITOR-TAG