Como posso automatizar e executar comandos de pós-instalação em máquinas virtuais do Azure?

1

Eu preciso implantar os hosts do Azure e configurá-los de acordo com um script predefinido assim que eles forem carregados.

Existe algum exemplo, orientação ou tutorial sobre como modificar uma VM do Azure depois que a instância for implantada ... programaticamente (via powershell, c # ou qualquer outro meio)?

Até agora, eu passei pelos comandos de implantação de linha de comando e não vejo uma maneira pela qual eu possa fazer upload ou iniciar um comando de instalação pós-implantação.

    
por random65537 30.01.2014 / 23:09

3 respostas

3

Eu não tenho certeza de onde você ficou preso ou o que especificamente você está tentando realizar, mas vou dar uma chance mesmo assim ...

Área de trabalho remota

Apenas para diversão, vamos começar com o remoting na VM. Eu criei uma VM usando o portal do Azure. O portal pede um nome de usuário e senha para serem especificados. Obviamente, a maneira mais simples de usar o controle remoto seria usar o botão "Conectar" depois de selecionar uma instância da sua VM:

Delávocêpodeinserirsuascredenciais,fazerloginnaVMeabriroPowerShell.

Essaéumamaneiraruimdecuidardisso,maséomaissimples.

RemotodoPowerShell

IniciarumasessãoremotadoPowerShellpodeserumpoucomaisrápidoeenvolvermenosGUI.Paraumrápidoone-liner,tenteisto:

Enter-PSSession-ConnectionUri(Get-AzureWinRMUri)-SessionOption(New-PSSessionOption-SkipCACheck)-Credential(Get-Credential)

Vocêserásolicitadoparaonomedoserviço(nomeucaso,rtannerf)ecredenciais.Opteiporignorarocertificadoautoassinadoemvezdeimportá-lo.

VocêtambémpodeusarInvoke-Command:

Invoke-Command–ConnectionUri$uri–Credential$cred–ScriptBlock{"do u liek mah hat!?" | Out-File C:\hello.txt }

Mais sobre isso aqui . Você pode expandir isso e usar o PowerShell para implantar suas VMs e executar scripts contra elas assim que a implantação for concluída. Talvez queira dar uma olhada na página de referência do cmdlet do Azure Management .

Essa abordagem parece um pouco desajeitada para mim, mas se você precisar lançar apenas algumas VMs, pode funcionar bem para você.

Implantando via Imagens

Se você precisar de um toque mais pesado do que o apropriado para Invoke-Command , convém examinar a implantação de imagens. A versão curta é que você irá preparar uma imagem da mesma forma que faria com qualquer outra imagem do Windows, carregá-la em uma conta de armazenamento no Azure e usar o console de gerenciamento para adicionar o VHD às suas imagens. Há um breve guia aqui .

Parece-me que esta será a maneira como você quer abordar o seu problema. Você pode usar scripts de inicialização e outros itens para colocar a máquina no estado que deseja, mas provavelmente é melhor ir direto ao assunto e simplesmente implantar uma imagem que esteja configurada exatamente como você precisa.

    
por 31.01.2014 / 01:27
2

Ao implantar uma VM, você pode especificar dados personalizados : Até 64 K de dados injetados na VM durante o provisionamento (detalhes da API aqui . Você especifica dados em um formato codificado na base 64 no elemento <CustomData> . Esses dados aparecerão na sua VM, em:

  • %SYSTEMDRIVE%\AzureData\CustomData.bin (Windows)
  • /var/lib/waagent/CustomData (Linux)

No momento, isso está disponível apenas por meio da API REST, mas também estará disponível em breve por meio da CLI de plataforma cruzada. Você pode ver a solicitação de pull para este recurso aqui .

    
por 31.01.2014 / 10:17
0

Como alternativa, use o IaaS Management Studio , ele gera a linha de comando para que você possa se conectar via powershell em um clique. (e gere as linhas de comando para isso) Comercial, mas talvez o teste gratuito seja suficiente para você.

    
por 10.02.2014 / 16:55