Tuto pour apprendre avec Azure CLI à monter des VMs et ensuite utiliser AKS (prochain tuto).
Prérequis : avoir un compte Azure (il en existe des gratuits avec 170€ de crédits) et Azure Cli installé sur sa machine.
Azure cli : https://docs.microsoft.com/fr-fr/cli/azure/get-started-with-azure-cli?view=azure-cli-latest
Création d'une VM 1
Pour tester azure cli, on va lui demander sa version
az --version
azure-cli 2.0.80 (...)
On va maintenant se connecter sur Azure via cette commande
az login
Cela ouvre un browser pour se connecter au portail web. Après connextion, le terminal affiche les abonnements Azure
Nous allons créer un groupe de ressources :
az group create --name TutorialResources --location eastus
Il n'est pas apparu sur le portail web d'Azure. Sans doute car je n'avais aucune ressources dedans pour le moment.
Nous allons maintenant créer notre première Virtual Machine en ligne de commande :
az vm create --resource-group TutorialResources `
--name TutorialVM1 `
--image UbuntuLTS `
--generate-ssh-keys `
--output json `
--admin-username yannvasseur `
--verbose
Note : sous powershell une commande multi ligne se termine par ` (en bash c'est \ )
j'ai dû rajouter --admin-username yannvasseur ` à cette commande car on avait une erreur sinon.
Il faut qq minutes pour créer une VM, voici ce que la commande nous retourne :
{
"fqdns": "",
"id": "/subscriptions/eaeaae83-9dcd-405b-8f02-4e58e0e30bbb/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM1",
"location": "eastus",
"macAddress": "00-0D-3A-8D-7D-07",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "13.90.91.229",
"resourceGroup": "TutorialResources",
"zones": ""
}
Pour obtenir plus d'information sur cette VM :
az vm show --name TutorialVM1 --resource-group TutorialResources
Le listing que vous obtenez est plutot long, mais d'autant plus complet. Remarquez que l'on a pas de password pour l'administrateur.
- Json results :
Si on se connecte sur le portail web Azure, on voit tout ce qui a été créé :
Dans l'ordre affiché on a une machine virtuelle Standard DS1 v2 (1 processeurs virtuels, 3.5 Gio de mémoire) sous Linux (ubuntu 18.04), un disque de 30Go SSD premium, un groupe de sécurité réseau (un firewall), une adresse IP publique (13.90.91.229), une interface réseau et un réseau privé virtuel (10.0.0.0/16). L'emplacement est USA est.
Tout ca en une ligne de commande !
VM2
On va maintenant en créer une deuxieme parce qu'on est foufou. Mais avant cela on va récupérer des infos sur notre premiere VM concernant notre subnet (sous réseau) afin que nos deux VMs soient sur le même réseau :
az vm show --name TutorialVM1 `
--resource-group TutorialResources `
--query 'networkProfile.networkInterfaces[].id' `
--output tsv
Résultat :
/subscriptions/eaeaae83-9dcd-405b-8f02-4e58e0e30bbb/resourceGroups/TutorialResources/providers/Microsoft.Network/networkInterfaces/TutorialVM1VMNic
Cette commande nous permet d'obtenir l'id de notre interface réseau VM1.
A partir de cet id, on va demander a azure toutes les informations de cette interface réseau :
az network nic show --ids /subscriptions/eaeaae83-9dcd-405b-8f02-4e58e0e30bbb/resourceGroups/TutorialResources/providers/Microsoft.Network/networkInterfaces/TutorialVM1VMNic
- info interface réseau
On va devoir récupérer l'id de l'IP (et pour plus tard on aura peut etre besoin de l'id du sous réseau)
az network nic show --ids /subscriptions/eaeaae83-9dcd-405b-8f02-4e58e0e30bbb/resourceGroups/TutorialResources/providers/Microsoft.Network/networkInterfaces/TutorialVM1VMNic `
--query '{IP:ipConfigurations[].publicIpAddress.id, Subnet:ipConfigurations[].subnet.id}' `
-o json
Voici le résultat, sous forme de donnée JSON :
{
"IP": [
"/subscriptions/eaeaae83-9dcd-405b-8f02-4e58e0e30bbb/resourceGroups/TutorialResources/providers/Microsoft.Network/publicIPAddresses/TutorialVM1PublicIP"
],
"Subnet": [
"/subscriptions/eaeaae83-9dcd-405b-8f02-4e58e0e30bbb/resourceGroups/TutorialResources/providers/Microsoft.Network/virtualNetworks/TutorialVM1VNET/subnets/TutorialVM1Subnet"
]
}
Maintenant on va créer une deuxième VM avec cette commande
az vm create --resource-group TutorialResources `
--name TutorialVM2 `
--image UbuntuLTS `
--generate-ssh-keys `
--subnet /subscriptions/eaeaae83-9dcd-405b-8f02-4e58e0e30bbb/resourceGroups/TutorialResources/providers/Microsoft.Network/virtualNetworks/TutorialVM1VNET/subnets/TutorialVM1Subnet `
--admin-username yannvasseur `
--output json `
--verbose
Notez que l'on juste rajouté un sous réseau et renommer son nom.
Voici le résultat :
Use existing SSH public key file: C:\\Users\\Yann\\.ssh\\id_rsa.pub
Accepted: vm_deploy_Ud4Y1LjR5olzzHxJhIQ1kNiWStjJCeBn (Microsoft.Resources/deployments)
{
"fqdns": "",
"id": "/subscriptions/eaeaae83-9dcd-405b-8f02-4e58e0e30bbb/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM2",
"location": "eastus",
"macAddress": "00-0D-3A-18-E6-A5",
"powerState": "VM running",
"privateIpAddress": "10.0.0.5",
"publicIpAddress": "40.117.142.145",
"resourceGroup": "TutorialResources",
"zones": ""
}
command ran in 103.297 seconds.
Et voila notre 2ime VM est créée. Ce qui est vérifié sur le portail web :
Nettoyage
Si vou souhaitez tout effacer, c'est par ici : https://docs.microsoft.com/fr-fr/cli/azure/azure-cli-vm-tutorial?tutorial-step=7&view=azure-cli-latest