Configurando Máquina Virtual com Azure Power Shell
O que é o PowerShell?
É uma ferramenta baseada em interface de linha de comando (CLI) de código aberto que permite que desenvolvedores, administradores de TI e profissionais de DevOps automatizem tarefas e configurações usando código.
Geralmente, o PowerShell funciona mais como uma linguagem de programação, como um programa de linha de comando, pois foi criado na estrutura .NET.
O PowerShell funciona com objetos; na verdade, tudo no PowerShell é um objeto. Esses objetos representam atributos (propriedades) ou instruções (métodos), funciona no programa como uma entrada ou saída.
O PowerShell manipula objetos com quatro tipos diferentes de comandos que são:
1. Cmdlets
Os cmdlets, pronunciados como command-lets, são os comandos básicos de função única do PowerShell, não executáveis autônomos.
Eless são coletados em módulos do PowerShell que podem ser carregados sob demanda. Os cmdlets podem ser gravados em qualquer linguagem .NET compilada ou na própria linguagem de script do PowerShell. Por exemplo, o cmdlet Get-Command incluído no PowerShell é usado para obter todos os cmdlets registrados no shell de comando. O verbo identifica a ação que o cmdlet executa, e o substantivo identifica o recurso no qual o cmdlet realiza sua ação.
2. Funções do PowerShell
As funções são um dos muitos comandos usados para executar códigos no PowerShell. Ao contrário dos cmdlets, as funções são escritas na linguagem PowerShell. Eles são uma sequência de instruções que são formadas e devem ser alcançadas simplesmente invocando-as. Sua entrada são parâmetros, mas a saída pode aparecer na tela do usuário ou ser canalizada para outra função ou entrada de cmdlet.
Existem duas funções no power shell: básico e avançado. A função básica é a forma mais simples da função usada no PowerShell. Com funções básicas, não há recursos integrados de recursos herdados. Há apenas um conjunto de chaves contendo o corpo da função. Funções avançadas são funções que possuem propriedades de uma função básica como núcleo, mas possuem recursos adicionais. Essas funções carregam recursos integrados que oferecem mais funcionalidade.
3. Scripts do PowerShell
Os scripts do PowerShell são escritos com cmdlets. Esses scripts são usados para criar automação para diferentes tarefas. Existem três tipos de comandos em um script do PowerShell.
O comando “get” é o primeiro usado para recuperar dados de um sistema de arquivos. O comando “set” é usado para editar as informações dos componentes do Windows. Isso inclui atribuir propriedades a diferentes componentes. O comando “remove” é usado para excluir completamente as operações. Os scripts do PowerShell reduzem a complexidade do código ao escrever códigos e outros casos de uso de automação.
4. Comandos executáveis (Executable commands)
Comandos executáveis são comandos usados na execução de arquivos executáveis. Os arquivos executáveis têm uma extensão .exe e são componentes de software do Microsoft Windows. Existem três comandos usados na execução de arquivos .exe. A primeira é com o comando “Invoke-expression”. Este é sem dúvida o método mais popular de executar esses arquivos.
O segundo comando é o cmdlet “start-process”. Este comando inicia mais de um processo em seu dispositivo, mas dá o mesmo resultado do primeiro comando. A terceira opção é digitar “.\” antes do nome do arquivo. Este é o método mais fácil, mas todas as alternativas executam o arquivo .exe.
Por que usar o Power Shell?
Como uma linguagem de script, para automatizar o gerenciamento de sistemas. Ele também é usado para compilar, testar e implantar soluções, geralmente em ambientes de CI/CD. O PowerShell é criado no CLR (Common Language Runtime) do .NET. No entanto, as duas principais funções do PowerShell incorporam mais modalidades, e essas modalidades (ou casos de uso) são os motivos da crescente popularidade do PowerShell.
- Automação de tarefas
A primeira dessas razões é a automação de tarefas no DevOps . Como uma linguagem de script, o PowerShell é usado principalmente para criar automação. A automação abrange todos os casos de uso do PowerShell. As automações são feitas em outras linguagens de script, mas principalmente no PowerShell devido ao sistema de formato exclusivo. O PowerShell também é uma opção melhor porque o programa é extensível com funções, classes, cmdlets e módulos.
- Acessibilidade de dados
Uma parte significativa dos casos de uso do PowerShell são atividades administrativas. Em grandes redes de computadores, muitos serviços funcionam de forma independente e são controlados por um administrador central de TI. O PowerShell oferece ao administrador de TI acesso fácil a diferentes armazenamentos de dados de serviços de rede, como sistemas de arquivos ou registros.
- Gerenciar IaC “infraestrutura como código”
Os gerentes ou administradores de TI obtêm habilidades do PowerShell para saber como enviar ou extrair modelos de configuração no PowerShell para composição simples conforme a necessidade. Eles também precisam desses conhecimentos para impor definições e configuração, obter implantações repetíveis ( Scripts) e criar configurações / procedimentos.
- Comandos Remotos
Com o PowerShell, os administradores podem realizar operações remotas em vários sistemas.
Configurando Azure Virtual Machine com PowerShell
Definindo as variáveis da VM
New-AzResourceGroup -Name RG_Blog -Location EastUS
$vmName = ‘srv001’
$vmSize = ‘Standard_B2s’
$resourceGroup = Get-AzResourceGroup -Name ‘RG_Blog’
$location = $resourceGroup.Location
$vnet = Get-AzVirtualNetwork -Name ‘srv001-vnet’ -ResourceGroupName $resourceGroup.ResourceGroupName
$subnetid = (Get-AzVirtualNetworkSubnetConfig -Name ‘subredesrv001’ -VirtualNetwork $vnet).Id
Evidência dos comados executados
Definindo as Variáveis de Acesso
$adminUsername = ‘alessandro.lyra’
$adminPassword = ‘P@ssw0rd123456’
$adminCreds = New-Object PSCredential $adminUsername, ($adminPassword | ConvertTo-SecureString -AsPlainText -Force)
Definindo as Variáveis do Sistema Operacional
$publisherName = ‘MicrosoftWindowsServer’
$offerName = ‘WindowsServer’
$skuName = ‘2016-Datacenter’
$osDiskType = (Get-AzDisk -ResourceGroupName $resourceGroup.ResourceGroupName)[0].Sku.Name
$vmConfig = New-AzVMConfig -VmName $vmName -VMSize $vmSize
Esse comando abaixo Adciona a Virtual Network na VM
Você deve substituir o texto destacado pelo ID da Sua subscrição atual, da Interface de Rede
Add-AzVMNetworkInterface -VM $vmConfig -Id “/subscriptions/1c41789-b109f-4eppc-a908d-2f44788d5ddui73/resourceGroups/RG_Blog/providers/Microsoft.Network/networkInterfaces/Srv0011835895671“
Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmName -Credential $adminCreds
Set-AzVMSourceImage -VM $vmConfig -PublisherName $publisherName -Offer $offerName -Skus $skuName -Version ‘latest’
Set-AzVMOSDisk -VM $vmConfig -Name “$($vmName) OsDisk_1_$(Get-Random)” -StorageAccountType $osDiskType -CreateOption fromImage
Desabilitando o diagnóstico de boot
Set-AzVMBootDiagnostic -VM $vmConfig -Disable
Criando a máquina virtual
New-AzVM -ResourceGroupName $resourceGroup.ResourceGroupName -Location $location -VM $vmConfig
Vamos verificar se nossa máquina virtual foi criada com sucesso.
Faça login no portal do azure e selecione o resource group onde a máquina virtual foi criada.
Podemos ver que a Maquina Virtual e todos os seus recursos forma criados no Grupo de Recurso RG_Blog conforme definimos em nosso Script de PowerShell.
Agora vamos validar as configuraçoes da Maquina Virtual.
Conclusão
Com isso concluímos que nossa máquina virtual foi criada com sucesso!!!
Espero que este conteúdo tenha contribuído com o enriquecimento do conhecimento de vocês em Azure
Referências:
- https://learn.microsoft.com/en-us/azure/virtual-machines/windows/quick-create-powershell
- https://learn.microsoft.com/en-us/powershell/module/az.compute/get-azvm?view=azps-9.1.0
- https://learn.microsoft.com/en-us/shows/azure-friday/powershell-in-azure-cloud-shell
- https://learn.microsoft.com/en-us/powershell/