[Azure] Fixer une IP sur une VM

En voulant fixer l’IP d’une VM sur Azure pour un client (sur un CentOS), je me suis apercu qu’apès avoir déployé le VHD avec l’ip donné par Azure, celle-ci ne pouvait pas accéder à internet et je ne pouvait donc me connecter en SSH dessus (la partie HostName dans Azure n’existait pas):

J’ai configure ma VM comme ceci:

Fichier /etc/sysconfig/network-scripts/ifcfg-eth0:
DHCP_HOSTNAME=FlorentVM
DEVICE=eth0
ONBOOT=yes
DHCP=yes
BOOTPROTO=dhcp
TYPE=Ethernet
USERCTL=no
PEERDNS=yes
IPV6INIT=no

Fichier /etc/sysconfig/network:
NETWORKING=yes
HOSTNAME=FlorentVM

J’ai regardé la documentation sur Azure, et j’ai vu qu’il existait une commandlet pour attribuer une IP spécifique à une VM. Cette commande est Set-AzureStaticVnetIP. Pour l’utiliser, j’ai fait ceci:

$VM = Get-AzureVM -ServiceName Florent -Name FlorentVM
Set-AzureStaticVNetIP -IPAddress 192.168.0.4 -VM $VM | Update-AzureVM

Après avoir fait ceci, attendait quelques minutes que la VM ce mette à jour:

Une  fois la mise à jour terminée, vous pouvez voir que maintenant la partie hostname est complétée, et que vous pouvez accéder à votre VM en SSH et que elle même peut accéder à l’extérieur (un reboot peut être nécessaire):

Ceci s’explique du fait que lorsque vous assignez l’IP de façon manuelle, du côté Azure, l’enregistrement DNS n’est pas créé et les règles firewall associées à ce nom DNS ne sont également pas créées.

Si vous souhaitez réserver directement l’IP au moment du déploiment de la VM, utilisez le script suivant:

$imageName = (Get-AzureVMImage | Where { $_.ImageFamily -eq "CoreOS Stable" } | Select -First 1).ImageName
New-AzureVMConfig -Name "FlorentTest" -InstanceSize "Small" -ImageName $imageName | Add-AzureProvisioningConfig -DisableGuestAgent -Linux -LinuxUser Florent -Password P@ssw0rd | Set-AzureSubnet -SubnetNames "PROD" | Set-AzureStaticVNetIP -IPAddress "192.168.0.200" | New-AzureVM -ServiceName "Florent"

Et pour supprimer une IP statique:

$VM = Get-AzureVM -ServiceName Florent -Name FlorentVM
Remove-AzureStaticVNetIP  -VM $VM | Update-AzureVM

Vous pouvez aussi effectuer cette manipulation via le nouveau portail de Azure:

Laisser un commentaire