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