À medida que sua equipe começa a provisionar e configurar mais máquinas virtuais do Windows Azure , em algum momento, você ficará cansado de reinventar a roda. Você precisa de automação! Neste artigo, acompanhe-me enquanto eu guio você passo a passo para começar a usar extensões de script personalizado do Azure para executar scripts no Azure em suas VMs.
Se sua equipe estiver em um ambiente Windows, uma das melhores ferramentas para automatizar a configuração do servidor é o PowerShell. Ao usar o módulo Azure PowerShell, sua organização pode aproveitar o poder do PowerShell não apenas para automatizar tarefas locais, mas também para executar comandos em várias VMs do Azure de uma vez, em vez de uma por vez.
Uma funcionalidade que a Microsoft nos forneceu é chamada de extensão de script personalizado do Azure. A extensão de script personalizado é uma extensão da máquina virtual do Azure que o agente da VM executa para executar código PowerShell arbitrário em suas VMs usando a API do Azure, em vez de acessar a VM diretamente ou usar remotação PowerShell.
Executar comandos desta maneira oferece várias vantagens. Executar comandos usando a extensão personalizada do Azure no Windows:
- fornece maior segurança, pois não é necessário abrir portas de rede para a remotação do PowerShell
- permite a fácil execução de código PowerShell na inicialização da VM
- transfere automaticamente recursos do armazenamento do Azure para sua VM como parte do processo de provisionamento
- Uma maneira fácil de executar scripts do PowerShell armazenados em várias contas de armazenamento do Azure
Habilitar uma extensão de script personalizado do Azure para Windows pode ser feito de algumas maneiras. Neste artigo, vamos nos concentrar em habilitar a extensão de script personalizado via PowerShell, mas você também pode habilitar a extensão por meio de um modelo do Gerenciador de Recursos do Azure (ARM).
Como exemplo simples, digamos que você queira garantir que o PowerShell remoting esteja habilitado em uma VM do Azure em sua assinatura. Para fazer isso, você precisaria executar o seguinte comando localmente em cada VM:
Vamos construir uma extensão de script personalizado para fazer isso.
Usando o Azure para Executar um Script em uma VM
Primeiro, crie um script do PowerShell chamado Enable-PSRemoting.ps1 em seu computador local com o comando acima dentro. Este script precisa ser executado em uma VM do Azure. Para fazer isso, vamos construir outro pequeno script do PowerShell chamado New-CustomScriptExtension.ps1 para fazer o upload dele para o Azure e criar uma extensão de script personalizado para executá-lo. Antes de avançarmos muito, você precisará de alguns itens:
- O nome do grupo de recursos e da conta de armazenamento do Azure que irá armazenar o script
- O nome do contêiner de armazenamento do Azure
- O nome da VM
- O nome do grupo de recursos do Azure em que a VM está
Este script pode ser dividido em duas seções; fazer o upload do pequeno script do PowerShell para o Azure e criar a extensão de script personalizado. Todo o resto é necessário para unir esses dois processos.
Fazendo o Upload de um Script do PowerShell para o Azure
Primeiro, vamos carregar o script Enable-PSRemoting.ps1 na conta de armazenamento do Azure ($StorageAccountName
) dentro do contêiner ($ContainerName
) no grupo de recursos ($ResourceGroupName
).
Executando a Extensão de Script Personalizado
Ao executar New-CustomScriptExtension.ps1, este script carregará o script Enable-PSRemoting.ps1 na conta de armazenamento do Azure especificada.
Agora que o script está armazenado no Azure, você pode executá-lo por meio da extensão de script personalizado para a VM:
- Nome:
$VMName
- Grupo de Recursos:
$rgName
- Conta de Armazenamento:
$saName
- Container de Armazenamento:
$scName
Abra um editor de texto para New-CustomScriptExtension.ps1 e cole o exemplo abaixo. Quando você executar isso, ele executará a extensão de script personalizado do Azure para Windows, que executará o script PowerShell Enable-PSRemoting.ps1 que você carregou anteriormente.
Assim que este script for concluído, você pode verificar que Enable-PSRemoting.ps1 foi executado na VM e a execução remota do PowerShell foi ativada com sucesso. Agora você deve ser capaz de usar Invoke-Command
contra sua VM do Azure.
Ao aproveitar a extensão de script personalizado do Azure no Windows, agora você tem a capacidade de executar remotamente qualquer tipo de scripts do PowerShell em suas VMs do Azure.
Source:
https://adamtheautomator.com/azure-run-script-on-vm/