Criando uma VM no Windows Azure com PowerShell

Olá pessoal,

Hoje vou comentar sobre como criar uma VM no Windows Azure utilizando comandos PowerShell.

Neste post vou criar uma VM à partir de uma image. Eu também poderia utilizar um disco existente, mas vou deixar para outro post. Então, a primeira coisa à ser feita, é identificar qual a imagem que será utilizada. Para facilitar, o Windows Azure possui um cmdlet chamado Get-AzureVMImage, que traz a lista de todas as imagens que podem ser utilizadas. Devemos utilizar o conteúdo do retorno da propriedade ImageName para indicar qual imagem será utilizada na criação da nossa VM.

Devemos em seguida, criar uma nova configuração de VM através do cmdlet New-AzureVMConfig. Para este comando, devemos informar o nome da máquina, seu tamanho e o nome da imagem que deve ser utilizada.

O próximo passo é adicionar informação de provisionamento do sistema operacional, indicando se é uma imagem Windows ou Linux, como também nome do usuário administrador e sua senha.

Por último, efetivamos a criação da VM através do cmdlet New-AzureVM, informando o nome do Cloud Services e também sua localização. Abaixo vemos um script completo de criação de uma VM utilizando os cmdlets acima através da estrutura de pipe do PowerShell:

#Get-AzureVMImage | Select ImageName

 

$imageName
=
"a699494373c04fc0bc8f2bb1389d6106__Win2K8R2SP1-Datacenter-201306.01-en.us-127GB.vhd"

$user
=
"<SeuUsuario>"

$password
=
"<SuaSenha>"

 

New-AzureVMConfig
-Name
"<NomeDaSuaMaquina>"
-InstanceSize
"Small"
-ImageName
$imageName
|

Add-AzureProvisioningConfig
-Windows
-AdminUsername
$user
-Password
$password
|

New-AzureVM
-ServiceName
"<NomeDoSeuServico>"
-Location
"East US"

 

Uma variação desse script pode ser a criação de uma segunda máquina no mesmo Cloud Service, onde deve ser informado o nome da VM, o mesmo nome de Cloud Service e deve ser omitido o parâmetro de localidade, afinal o Cloud Service já existe. Uma possibilidade interessante pode ser o uso do parâmetro –WaitForBoot, onde o PowerShell somente retornaria depois que a VM estivesse no ar.

#Get-AzureVMImage | Select ImageName

 

$imageName
=
"a699494373c04fc0bc8f2bb1389d6106__Win2K8R2SP1-Datacenter-201306.01-en.us-127GB.vhd"

$user
=
"<SeuUsuario>"

$password
=
"<SuaSenha>"

 

New-AzureVMConfig
-Name
"<NomeDaSuaSegundaMaquina>"
-InstanceSize
"Small"
-ImageName
$imageName
|

Add-AzureProvisioningConfig
-Windows
-AdminUsername
$user
-Password
$password
|

New-AzureVM
-ServiceName
"<NomeDoSeuServico>"
–WaitForBoot

 

Além disso, também seria possível realizar outras configurações na VM, como adicionar discos através do cmdlet Add-AzureDataDisk ou endpoints utilizando o cmdlet Add-AzureEndpoint.

 

RG