Um novo recurso que se tornou disponivel nas novas versões do PowerShell para o Windows Azure são os comandos “StaticVNetIP”. Você pode baixar a nova versão em http://www.windowsazure.com/pt-br/downloads/#cmd-line-tools
Estes comandos permitem que se fixe o IP dentro do range da rede virtual que você já tenha definido, permitindo assim que consiga garantir o IP de cada VM sem a necessidade de fazer o “Start” na ordem fixa todas as vezes.
Passo 1: Saiba os Riscos e Gerencie Seus IPs
Antes de iniciarmos, é importante ressaltar que não há suporte se houver problemas (http://msdn.microsoft.com/en-us/library/windowsazure/jj156090.aspx#BKMK_IPAddressDNS):
“Use DHCP-leased addresses (this is mandatory — static addresses are NOT supported) “
Portanto, antes de começar a designar IPs fixos as suas VMs, lembre de manter uma lista dos IPs definidos!
Além disso, não utilize IPs que não estejam no range da sua rede virtual. Por exemplo, a minha rede tem o range 10.0.1.4 a 254 e se eu fixar o IP 10.0.2.4 a uma VM, ele ficará incomunicável e precisará ser excluida.
Passo 2: Registrar a Assinatura no PowerSell
Este passo é permanente, e basta executar o comando Add-AzureAccount que irá abrir uma janela de autenticação e importará os dados da sua assinatura:
Para verificar se importou com sucesso use o comando Get-AzureSubscription que retornará os dados da assinatura registrada:
Caso precise remover uma assinatura que tenha utilizado no passado para teste, o comando Remove-AzureSubscription é indicado. Se necessário, precisará redefinir sua assinatura padrão, o comando abaixo redefinirá o default:
Passo 3: Registre o IP de cada VM
Para registrar os IPs lembre-se do que foi comentado no início, é necessário que eles estejam no range da rede virtual que você tenha definido, senão a VM não poderá mais ser acessada e ficará incomunicável.
O comando que utilizaremos para fixar o IP não trabalha com strings, o primeiro passo é usar o comando Get-AzureVM para retornar em uma variável o PermanentID da VM desejada:
O comando acima procura a VM “W2012-Exch-3” no catálogo e retorna o ID, e o comando Set-AzureStaticVNetIP abaixo fixa o IP:
Obs: Pode-se usar o “pipe |” para executar os comandos na mesma linha se desejado
Porem, note que o comando acima não foi confirmado, apenas como que simulado. O correto é utilizar o Update-AzureVM na sequência para confirmar a alteração, como um commit.
Sendo assim, a sequencia de comandos para alterar as VMs seria como o exemplo abaixo:
Note que neste exemplo 3 diferentes VMs tiveram seus IPs fixados e é possivel com o comando Get-AzureStaticVNetIP consultar se a VM fixou o IP desejado:
Por fim, ao verificar o escopo de rede no Azure, pode-se ver que as maquinas reiniciadas receberam o IP que fixamos: