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

viernes, 14 de febrero de 2020

Microsoft Azure: creación de una red virtual a través de Powershell




Continuando con nuestra serie de artículos de creación de recursos a través de powershell en Azure.
Crearemos una red virtual para asignar recursos de Azure y dejarla en un estándar seguro. En este ámbito, estoy configurando la red con las subredes segmentadas:
  • Backend;
  • Frontend;
  • DMZ;
  • Puerta de enlace de subred;
Antes de comenzar a crear su estructura de red de Azure, comprendamos cómo funciona una red en Azure.
En Azure cuando creamos una red, primero elegimos cuál será el " Espacio de direcciones " que sería un bloque de IP que usaríamos dentro de nuestra red virtual y dentro de ese bloque consideraremos que cada " Subred " será una pieza de ese bloque, según el dibujo. abajo

Después de iniciar sesión en " Cloud Shell ", seleccione Powershell , asignaremos algunas variables para crear la red.

$rgName= "RG_CloudShell"
$locName= "East US 2"

$NameVnet="VNet-AZ"

Estas variables son para elegir el grupo de recursos donde aprovisionaremos, la ubicación y el nombre de su red virtual.

Ahora vamos a asignar la configuración de red señalando el " Bloque de direcciones ", en este caso, el Espacio de direcciones 192.168.20.0/24 con 256 puntos de acceso.

New-AzVirtualNetwork -Name $NameVnet -ResourceGroupName $rgName -Location $locName -AddressPrefix 192.168.20.0/24


Verifique que se haya aprovisionado pero que no contenga subredes. ahora vamos a asignar algunas variables. Esta variable es para validar si la red existe dentro del entorno.

$VirtualNetwork = Get-AzVirtualNetwork -Name $NameVnet -ResourceGroupName $rgName




Después de validar la red existente, agregaremos las subredes de acuerdo con los ejemplos a continuación.

Add-AzVirtualNetworkSubnetConfig -Name BackEnd -VirtualNetwork $VirtualNetwork -AddressPrefix 192.168.20.0/26



A continuación, agregaremos el resto del alcance de la red.

Add-AzVirtualNetworkSubnetConfig -Name FrontEnd -VirtualNetwork $VirtualNetwork -AddressPrefix 192.168.20.64/26
Add-AzVirtualNetworkSubnetConfig -Name DMZ -VirtualNetwork $VirtualNetwork -AddressPrefix 192.168.20.128/28

Add-AzVirtualNetworkSubnetConfig -Name GatewaySubnet -VirtualNetwork $VirtualNetwork -AddressPrefix 192.168.20.144/28



Ahora ejecutemos el comando " Establecer " para agregar el conjunto de subredes que se asignaron anteriormente.
Set-AzVirtualNetwork -VirtualNetwork $VirtualNetwork




Listo, su red virtual se creó con éxito con sus subredes segmentadas, vamos al portal para hacer la validación.

Gracias chicos y hasta la próxima publicación, donde hablaremos sobre la tarjeta de red y el grupo de seguridad de red.

miércoles, 12 de febrero de 2020

Microsoft Azure: creación de una cuenta de almacenamiento a través de Powershell

Hola chicos, ¿cómo están?
Continuando con nuestra serie de artículos de creación de recursos a través de powershell en Azure.
Crearemos una cuenta de almacenamiento para cualquier tipo de uso y dentro de esa cuenta de almacenamiento crearemos un blob para registros y un recurso compartido de archivos.


Crear cuenta de almacenamiento a través de Powershell

En la última publicación creamos un grupo de recursos, donde aprovisionaremos los recursos durante esta serie.
Abra Azure Cloud Shell, luego elija su suscripción, si el shell de la nube ya está abierto, agregaremos las siguientes variables, con la información:


$rgName= "RG_CloudShell"
$locName= "East US 2"
$STRName= "strpwjatoba01"

$TypeSTR= "Standard_LRS"




Luego ejecutaremos el comando " New-AZStorageAccount " para crear el almacenamiento a partir de las variables asignadas anteriormente.

New-AzStorageAccount -ResourceGroupName $rgName -Name $STRName -Type $TypeSTR -Location $locName





Listo el almacenamiento se creó con éxito.
Crear un contenedor a través de Powershell

Con el almacenamiento creado, crearemos un contenedor para asignar los " Registros " de nuestro entorno, para eso asignaremos algunas variables.


$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $STRName
$containerName = "logs"
$ctx = $storageAccount.Context




Después de asignar las variables, ejecutaremos el siguiente comando " New-AzStorageContainer " para crear el contenedor.


New-AzStorageContainer -Name $containerName -Context $ctx -Permission blob



Su contenedor ha sido creado con éxito.
Creando FileShareAhora vamos a crear un "File Share" con las siguientes variables.
$storageAccount = Get-AzStorageAccount -ResourceGroupName "RG_CloudShell" -Name "strpwjatoba01"






$storageKey = (Get-AzStorageAccountKey -ResourceGroupName $storageAccount.ResourceGroupName -Name $storageAccount.StorageAccountName | select -first 1).Value




$storageContext = New-AzStorageContext -StorageAccountName $storageAccount.StorageAccountName -StorageAccountKey $storageKey




Finalmente, crearemos el recurso compartido de archivos, con el nombre " xxxxfileshare " ejecutando el siguiente comando.



New-AzureStorageShare -Name "xxxxfileshare" -Context $storageContext



Nuestro recurso compartido de archivos se creó con éxito, ahora verifiquemos el contenedor y el recurso compartido de archivos que se crearon.

Contenedor para registros:

Compartir archivos para archivos:

Gracias chicos y hasta la próxima publicación, donde hablaremos sobre la red.