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
Comments
- Anonymous
July 05, 2013
Dicas muito úteis. Scripts PowerShell permitem automatizar diversos cenários, tanto para desenvolvimento quanto para infra.