À medida que sua equipe começa a provisionar e configurar mais máquinas virtuais (VMs) do Azure Windows, em algum momento, vocês ficarão cansados de reinventar a roda. Vocês precisam de automação! Neste artigo, acompanhe-me enquanto eu o guio passo a passo para começar a usar as extensões de script personalizadas 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 só vez, em vez de uma por vez.
Uma das funcionalidades que a Microsoft nos disponibilizou é chamada de extensão de script personalizada do Azure. A extensão de script personalizada é uma extensão de 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 entrar na VM ou usar a remotação do PowerShell.
Executar comandos dessa maneira oferece várias vantagens. A execução de comandos usando a extensão personalizada do Azure no Windows:
- fornecer segurança aumentada, não sendo 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 várias maneiras. Neste artigo, estaremos focando em habilitar a extensão de script personalizado via PowerShell, mas você também pode habilitar a extensão através de um modelo do Azure Resource Manager (ARM).
Como exemplo simples, vamos supor 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 criar 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. Este script precisa ser executado em uma VM do Azure. Para fazer isso, vamos criar 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 irmos muito longe, você vai 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 partes; 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, faremos o upload do script Enable-PSRemoting.ps1 para a conta de armazenamento Azure ($StorageAccountName
) dentro do container ($ContainerName
) no grupo de recursos ($ResourceGroupName
).
Executando a Extensão de Script Personalizada
Quando você executar New-CustomScriptExtension.ps1, esse script fará o upload do script Enable-PSRemoting.ps1 para a conta de armazenamento Azure especificada.
Agora que o script está armazenado no Azure, você pode executá-lo por meio da extensão de script personalizada para a VM:
- Nome:
$VMName
- Grupo de Recursos:
$rgName
- Conta de Armazenamento:
$saName
- Container de Armazenamento:
$scName
Abra um editor de texto para o New-CustomScriptExtension.ps1 e cole o exemplo abaixo. Quando você executar isso, ele executará a extensão de script personalizada do Azure para o Windows, que executará o script PowerShell Enable-PSRemoting.ps1 que você enviou anteriormente.
Resumo
Uma vez concluído este script, você pode verificar se Enable-PSRemoting.ps1 foi executado na VM e se o PowerShell remoting foi habilitado com sucesso. Agora você deve conseguir usar Invoke-Command
em sua VM do Azure.
Ao aproveitar a extensão de script personalizado do Azure no Windows, você agora tem a capacidade de executar remotamente qualquer tipo de script do PowerShell em suas VMs do Azure.
Source:
https://adamtheautomator.com/azure-run-script-on-vm/