lunes, 16 de marzo de 2020

Microsoft Azure - Crear entorno a través de Powershell

Hola chicos como estan
En este último artículo implementaremos un entorno completo a través de powershell. La intención con esto sería un artículo, era ayudarlo en la creación de cada recurso y, después de una manera automatizada, ayudar en la entrega de proyectos o iniciar proyectos con powershell.


¿Qué hay en este script?
  • Grupo de recursos;
  • Cuenta de almacenamiento;
  • Compartir archivos;
  • Contenedores de registro;
  • Creación de red;
  • Creación de máquina virtual;
  • Tarjeta de red de creación;
  • Creación del grupo de seguridad de red;
Ahora vamos, haz que la magia suceda rsrsrsrsrs
Capture algunas pantallas para entender su  tiempo de ejecución del script, para que pueda tener una idea de lo simple y rápida que es la creación. 













Este script es ideal en escenarios de iniciación de proyectos, donde ya tiene listo su alcance.
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= "xxxx"
$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 "xxxx"
$storageKey = (Get-AzStorageAccountKey -ResourceGroupName $storageAccount.ResourceGroupName -Name $storageAccount.StorageAccountName | select -first 1).Value
$storageContext = New-AzStorageContext -StorageAccountName $storageAccount.StorageAccountName -StorageAccountKey $storageKey
New-AzureStorageShare -Name "xxxxfileshare" -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="xxxx"
$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 "xxxx" -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



Gracias chicos, espero que hayan disfrutado esta serie de artículos.

Hasta el próximo post.

lunes, 9 de marzo de 2020

Microsoft Azure: creación de un grupo de seguridad de red a través de Powershell

Hola chicos como estan
Continuando con la creación del último recurso, crearemos el grupo de seguridad de red que tiene una función muy importante dentro de Microsoft Azure. Funciona en la capa 4, donde podemos comunicar puertos e IP entre redes internas o externas a través de una VPN.


Ahora vamos a asignar las siguientes variables

$nsgName="NSG-VM-01" 
$rgName= "RG_CloudShell"
$locName= "East US 2"

A continuación, crearemos una variable con el nombre del puerto y qué regla se utilizará. En este caso, estoy creando un " NSG " para acceder a través de RDP

$rules = New-AzureRmNetworkSecurityRuleConfig -Name 'default-allow-rdp' -Direction Inbound -Priority 1000 -Access Allow -SourceAddressPrefix '*'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange 3389 -Protocol Tcp

Ahora vamos a crear el NSG, con el siguiente comando.
$nsg = New-AzNetworkSecurityGroup -Name $nsgName -ResourceGroupName $rgName -Location $locName -SecurityRules $rules



Su NSG ha sido creado con éxito.

Gracias chicos y hasta la próxima publicación, donde demostraré cómo crear una máquina virtual usando todos estos comandos a la vez.

martes, 3 de marzo de 2020

Microsoft Azure - Creación de tarjeta de red a través de Powershell

Hola chicos como están
Continuando con nuestra serie de artículos sobre cómo crear recursos en Azure a través de powershell, hablemos sobre la creación de la tarjeta de red. A través de powershell, la creación de la tarjeta de red y su asignación en una VM y la asociación en un Vnet es más fácil a través del comando.
Ahora vamos a asignar algunas variables para la creación de la tarjeta de red.
$rgName= "RG_CloudShell"
$Nic1="Nic-VM-01"
$locName= "East US 2"
$vnetName="VNet-AZ"
$subnetIndex=0



Esta variable " SubnetIndex " es muy importante en el proceso de creación, ya que identificará cada una de sus redes virtuales en su entorno. En el caso de este artículo, tengo una única red virtual, por lo que estoy considerando el valor "0", pero en caso de que necesite extraer este valor, simplemente ejecute una " Get-AzVirtualNetwork " con los complementos como grupo de recursos y nombre de red.
Ahora validemos que la red existe dentro del entorno.
$vnet=Get-AzureRMVirtualNetwork -Name $vnetName -ResourceGroupName $rgName

A continuación, crearemos una IP pública para la tarjeta de red
$pip=New-AzPublicIpAddress -Name $Nic1 -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic


Finalmente, crearemos la tarjeta de red que asocia la ip pública y la vnet que existe dentro de nuestro entorno
$nic=New-AzNetworkInterface -Name $Nic1 -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[$subnetIndex].Id -PublicIpAddressId $pip.Id

Su tarjeta de red ha sido creada exitosamente.


Gracias a todos y hasta la próxima publicación, donde hablaremos sobre el grupo de seguridad de red