Démarrage rapide : Créer une machine virtuelle Linux dans Azure avec PowerShellQuickstart: Create a Linux virtual machine in Azure with PowerShell

Le module Azure PowerShell est utilisé pour créer et gérer des ressources Azure à partir de la ligne de commande PowerShell ou dans des scripts.The Azure PowerShell module is used to create and manage Azure resources from the PowerShell command line or in scripts. Ce guide de démarrage rapide explique comment utiliser le module Azure PowerShell pour déployer une machine virtuelle Linux dans Azure.This quickstart shows you how to use the Azure PowerShell module to deploy a Linux virtual machine (VM) in Azure. Ce démarrage rapide utilise l’image du marketplace Ubuntu 16.04 LTS fournie par Canonical.This quickstart uses the Ubuntu 16.04 LTS marketplace image from Canonical. Pour voir votre machine virtuelle en action, vous établirez également une connexion SSH à la machine virtuelle et installez le serveur web NGINX.To see your VM in action, you'll also SSH to the VM and install the NGINX web server.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

Lancement d’Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell est un interpréteur de commandes interactif et gratuit que vous pouvez utiliser pour exécuter les étapes de cet article.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Il contient des outils Azure courants préinstallés et configurés pour être utilisés avec votre compte.It has common Azure tools preinstalled and configured to use with your account.

Pour ouvrir Cloud Shell, sélectionnez simplement Essayer en haut à droite d’un bloc de code.To open the Cloud Shell, just select Try it from the upper right corner of a code block. Sélectionnez Copier pour copier les blocs de code, collez-les dans Cloud Shell, puis appuyez sur Entrée pour les exécuter.Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

Créer la paire de clés SSHCreate SSH key pair

Vous aurez besoin d’une paire de clés SSH pour suivre ce guide de démarrage rapide.You need an SSH key pair to complete this quickstart. Si vous disposez déjà d’une paire de clés SSH, vous pouvez ignorer cette étape.If you already have an SSH key pair, you can skip this step.

Ouvrez un interpréteur de commandes bash et utilisez ssh-keygen pour créer une paire de clés SSH.Open a bash shell and use ssh-keygen to create an SSH key pair. Si vous n’avez pas d’interpréteur de commandes bash sur votre ordinateur local, vous pouvez utiliser Azure Cloud Shell.If you don't have a bash shell on your local computer, you can use the Azure Cloud Shell.

ssh-keygen -t rsa -b 2048

Pour plus d’informations sur la création de paires de clés SSH, notamment l’utilisation de PuTTy, voir Guide pratique pour utiliser des clés SSH avec Windows.For more detailed information on how to create SSH key pairs, including the use of PuTTy, see How to use SSH keys with Windows.

Si vous créez votre paire de clés SSH à l’aide de Cloud Shell, elle est stockée dans une image de conteneur du compte de stockage automatiquement créé par Cloud Shell.If you create your SSH key pair using the Cloud Shell, it will be stored in a container image in a storage account that is automatically created by Cloud Shell. Ne supprimez pas ce compte de stockage, ou le partage de fichiers qu’il contient, tant que vous n’avez pas récupéré vos clés, faute de quoi vous perdrez votre accès à la machine virtuelle.Don't delete the storage account, or the files share within it, until after you have retrieved your keys or you will lose access to the VM.

Créer un groupe de ressourcesCreate a resource group

Créez un groupe de ressources Azure avec New-AzResourceGroup.Create an Azure resource group with New-AzResourceGroup. Un groupe de ressources est un conteneur logique dans lequel les ressources Azure sont déployées et gérées :A resource group is a logical container into which Azure resources are deployed and managed:

New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"

Créer des ressources de réseau virtuelCreate virtual network resources

Créez un réseau virtuel, un sous-réseau et une adresse IP publique.Create a virtual network, subnet, and a public IP address. Ces ressources sont utilisées pour fournir une connectivité réseau à la machine virtuelle et la connecter à Internet :These resources are used to provide network connectivity to the VM and connect it to the internet:

# Create a subnet configuration
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name "mySubnet" `
  -AddressPrefix 192.168.1.0/24

# Create a virtual network
$vnet = New-AzVirtualNetwork `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -Name "myVNET" `
  -AddressPrefix 192.168.0.0/16 `
  -Subnet $subnetConfig

# Create a public IP address and specify a DNS name
$pip = New-AzPublicIpAddress `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -AllocationMethod Static `
  -IdleTimeoutInMinutes 4 `
  -Name "mypublicdns$(Get-Random)"

Créez un groupe de sécurité réseau Azure et une règle de trafic.Create an Azure Network Security Group and traffic rule. Le groupe de sécurité réseau sécurise la machine virtuelle avec des règles entrantes et sortantes.The Network Security Group secures the VM with inbound and outbound rules. Dans l’exemple suivant, une règle de trafic entrant est créée pour le port TCP 22 qui autorise les connexions SSH.In the following example, an inbound rule is created for TCP port 22 that allows SSH connections. Pour autoriser le trafic web entrant, une règle de trafic entrant pour le port TCP 80 est également créée.To allow incoming web traffic, an inbound rule for TCP port 80 is also created.

# Create an inbound network security group rule for port 22
$nsgRuleSSH = New-AzNetworkSecurityRuleConfig `
  -Name "myNetworkSecurityGroupRuleSSH"  `
  -Protocol "Tcp" `
  -Direction "Inbound" `
  -Priority 1000 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 22 `
  -Access "Allow"

# Create an inbound network security group rule for port 80
$nsgRuleWeb = New-AzNetworkSecurityRuleConfig `
  -Name "myNetworkSecurityGroupRuleWWW"  `
  -Protocol "Tcp" `
  -Direction "Inbound" `
  -Priority 1001 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access "Allow"

# Create a network security group
$nsg = New-AzNetworkSecurityGroup `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -Name "myNetworkSecurityGroup" `
  -SecurityRules $nsgRuleSSH,$nsgRuleWeb

Créez une carte d’interface réseau virtuel avec New-AzNetworkInterface.Create a virtual network interface card (NIC) with New-AzNetworkInterface. La carte réseau virtuelle connecte la machine virtuelle à un sous-réseau, un groupe de sécurité réseau et une adresse IP publique.The virtual NIC connects the VM to a subnet, Network Security Group, and public IP address.

# Create a virtual network card and associate with public IP address and NSG
$nic = New-AzNetworkInterface `
  -Name "myNic" `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -SubnetId $vnet.Subnets[0].Id `
  -PublicIpAddressId $pip.Id `
  -NetworkSecurityGroupId $nsg.Id

Création d'une machine virtuelleCreate a virtual machine

Pour créer une machine virtuelle dans PowerShell, vous créez une configuration qui a des paramètres tels que l’image à utiliser, la taille et les options d’authentification.To create a VM in PowerShell, you create a configuration that has settings like the image to use, size, and authentication options. La configuration est ensuite utilisée pour générer la machine virtuelle.Then the configuration is used to build the VM.

Définissez les informations d’identification SSH, les informations du système d’exploitation et la taille de machine virtuelle.Define the SSH credentials, OS information, and VM size. Dans cet exemple, la clé SSH est stockée dans ~/.ssh/id_rsa.pub.In this example, the SSH key is stored in ~/.ssh/id_rsa.pub.

# Define a credential object
$securePassword = ConvertTo-SecureString ' ' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ("azureuser", $securePassword)

# Create a virtual machine configuration
$vmConfig = New-AzVMConfig `
  -VMName "myVM" `
  -VMSize "Standard_D1" | `
Set-AzVMOperatingSystem `
  -Linux `
  -ComputerName "myVM" `
  -Credential $cred `
  -DisablePasswordAuthentication | `
Set-AzVMSourceImage `
  -PublisherName "Canonical" `
  -Offer "UbuntuServer" `
  -Skus "16.04-LTS" `
  -Version "latest" | `
Add-AzVMNetworkInterface `
  -Id $nic.Id

# Configure the SSH key
$sshPublicKey = cat ~/.ssh/id_rsa.pub
Add-AzVMSshPublicKey `
  -VM $vmconfig `
  -KeyData $sshPublicKey `
  -Path "/home/azureuser/.ssh/authorized_keys"

Combinez maintenant les définitions de configuration précédentes à créer avec New-AzVM :Now, combine the previous configuration definitions to create with New-AzVM:

New-AzVM `
  -ResourceGroupName "myResourceGroup" `
  -Location eastus -VM $vmConfig

Quelques minutes sont nécessaires pour le déploiement de votre machine virtuelle.It will take a few minutes for your VM to be deployed. Lorsque le déploiement est terminé, passez à la section suivante.When the deployment is finished, move on to the next section.

Connexion à la machine virtuelleConnect to the VM

Créer une connexion SSH à la machine virtuelle à l’aide de l’adresse IP publique.Create an SSH connection with the VM using the public IP address. Pour voir l’adresse IP publique de la machine virtuelle, utilisez l’applet de commande Get-AzPublicIpAddress :To see the public IP address of the VM, use the Get-AzPublicIpAddress cmdlet:

Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" | Select "IpAddress"

Avec le même interpréteur de commandes bash que celui utilisé pour créer votre paire de clés (comme Azure Cloud Shell ou votre interpréteur de commandes bash local), collez la commande de connexion SSH dans l’interpréteur de commandes pour créer une session SSH.Using the same bash shell you used to create your SSH key pair (like the Azure Cloud Shell or your local bash shell) paste the SSH connection command into the shell to create an SSH session.

ssh azureuser@10.111.12.123

Lorsque vous y êtes invité, le nom d’utilisateur à saisir est azureuser.When prompted, the login user name is azureuser. Si une phrase secrète est utilisée avec vos clés SSH, vous devez la saisir que lorsque vous y êtes invité.If a passphrase is used with your SSH keys, you need to enter that when prompted.

Installer NGINXInstall NGINX

Pour voir votre machine virtuelle en action, installez le serveur web NGINX.To see your VM in action, install the NGINX web server. Dans votre session SSH, mettez à jour vos sources de package, puis installez le dernier package NGINX.From your SSH session, update your package sources and then install the latest NGINX package.

sudo apt-get -y update
sudo apt-get -y install nginx

Lorsque vous avez terminé, tapez exit pour quitter la session SSH.When done, type exit to leave the SSH session.

Voir le serveur web en actionView the web server in action

Utilisez le navigateur web de votre choix pour visualiser la page d’accueil NGINX par défaut.Use a web browser of your choice to view the default NGINX welcome page. Entrez l’adresse IP publique de la machine virtuelle comme adresse web.Enter the public IP address of the VM as the web address. Vous trouverez l’adresse IP publique sur la page de vue d’ensemble de la machine virtuelle ou en tant que partie de la chaîne de connexion SSH que vous avez utilisée précédemment.The public IP address can be found on the VM overview page or as part of the SSH connection string you used earlier.

Page d’accueil par défaut de NGINX

Supprimer des ressourcesClean up resources

Lorsque vous n’en avez plus besoin, vous pouvez utiliser la cmdlet Remove-AzResourceGroup pour supprimer le groupe de ressources, la machine virtuelle et toutes les ressources associées :When no longer needed, you can use the Remove-AzResourceGroup cmdlet to remove the resource group, VM, and all related resources:

Remove-AzResourceGroup -Name "myResourceGroup"

Étapes suivantesNext steps

Avec ce guide de démarrage rapide, vous avez déployé une machine virtuelle simple, créé un Groupe de sécurité réseau et une règle, et installé un serveur web de base.In this quickstart, you deployed a simple virtual machine, created a Network Security Group and rule, and installed a basic web server. Pour en savoir plus sur les machines virtuelles Azure, suivez le didacticiel pour les machines virtuelles Linux.To learn more about Azure virtual machines, continue to the tutorial for Linux VMs.