Snelstart: Een virtuele Linux-machine maken in Azure met PowerShellQuickstart: Create a Linux virtual machine in Azure with PowerShell

De Azure PowerShell-module wordt gebruikt voor het maken en beheren van Azure-resources vanaf de PowerShell-opdrachtregel of in scripts.The Azure PowerShell module is used to create and manage Azure resources from the PowerShell command line or in scripts. In deze snelstart wordt beschreven hoe u de Azure PowerShell-module gebruikt voor het implementeren van een virtuele Linux-machine (VM) in Azure.This quickstart shows you how to use the Azure PowerShell module to deploy a Linux virtual machine (VM) in Azure. In deze snelstart wordt de Marketplace-installatiekopie voor Ubuntu 16.04 LTS van Canonical gebruikt.This quickstart uses the Ubuntu 16.04 LTS marketplace image from Canonical. Wanneer u uw virtuele machine in actie wilt zien, voert u ook SSH voor de virtuele machine uit en installeert u de NGINX-webserver.To see your VM in action, you'll also SSH to the VM and install the NGINX web server.

Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.If you don't have an Azure subscription, create a free account before you begin.

Azure Cloud Shell startenLaunch Azure Cloud Shell

Azure Cloud Shell is een gratis interactieve shell waarmee u de stappen in dit artikel kunt uitvoeren.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. In deze shell zijn algemene Azure-hulpprogramma's vooraf geïnstalleerd en geconfigureerd voor gebruik met uw account.It has common Azure tools preinstalled and configured to use with your account.

Als u Cloud Shell wilt openen, selecteert u Proberen in de rechterbovenhoek van een codeblok.To open the Cloud Shell, just select Try it from the upper right corner of a code block. Klik op Kopiëren om de codeblokken te kopiëren, plak deze in Cloud Shell en druk vervolgens op Enter om de code uit te voeren.Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

Een SSH-sleutelpaar makenCreate SSH key pair

U hebt een SSH-sleutelpaar nodig om deze snelstart te volgen.You need an SSH key pair to complete this quickstart. Als u al een SSH-sleutelpaar hebt, kunt u deze stap overslaan.If you already have an SSH key pair, you can skip this step.

Open een bash-shell en gebruik ssh-keygen om een SSH-sleutelpaar te maken.Open a bash shell and use ssh-keygen to create an SSH key pair. Als u geen een bash-shell op uw lokale computer hebt, kunt u de Azure Cloud Shell gebruiken.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

Zie SSH-sleutels gebruiken met Windows voor gedetailleerde informatie over het maken van SSH-sleutelparen, waaronder het gebruik van PuTTy.For more detailed information on how to create SSH key pairs, including the use of PuTTy, see How to use SSH keys with Windows.

Als u uw SSH-sleutelpaar met behulp van de Cloud Shell maakt, wordt deze opgeslagen in een containerinstallatiekopie in een opslagaccount dat automatisch wordt gemaakt door 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. Verwijder het opslagaccount of de bestanden die het bevat niet totdat u uw sleutels hebt opgehaald. Anders verliest u toegang tot de virtuele machine.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.

Een resourcegroep makenCreate a resource group

Maak een Azure-resourcegroep met behulp van de opdracht New-AzResourceGroup.Create an Azure resource group with New-AzResourceGroup. Een resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd:A resource group is a logical container into which Azure resources are deployed and managed:

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

Virtuele netwerkresources aanmakenCreate virtual network resources

Maak een virtueel netwerk, subnet en een openbaar IP-adres.Create a virtual network, subnet, and a public IP address. Deze resources worden gebruikt voor netwerkconnectiviteit met de virtuele machine en om deze te verbinden met 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)"

Maak een Azure-netwerkbeveiligingsgroep en verkeersregel.Create an Azure Network Security Group and traffic rule. De netwerkbeveiligingsgroep beveiligt de virtuele machine met binnenkomende en uitgaande regels.The Network Security Group secures the VM with inbound and outbound rules. In het volgende voorbeeld wordt een binnenkomende regel gemaakt voor TCP-poort 22, die SSH-verbindingen toestaat.In the following example, an inbound rule is created for TCP port 22 that allows SSH connections. Er wordt ook een binnenkomende regel voor TCP-poort 80 gemaakt om binnenkomend verkeer toe te staan.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

Een virtuele netwerkinterfacekaart (NIC) maken met New-AzNetworkInterface.Create a virtual network interface card (NIC) with New-AzNetworkInterface. De virtuele NIC verbindt de virtuele machine met een subnet, netwerkbeveiligingsgroep en openbaar IP-adres.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

Een virtuele machine makenCreate a virtual machine

Voor het maken van een virtuele machine in PowerShell, maakt u een configuratie die instellingen bevat zoals de te gebruiken installatiekopie, grootte en verificatieopties.To create a VM in PowerShell, you create a configuration that has settings like the image to use, size, and authentication options. Vervolgens wordt de configuratie gebruikt om de virtuele machine te bouwen.Then the configuration is used to build the VM.

Definieer de SSH-referenties, besturingssysteeminformatie en grootte van de virtuele machine.Define the SSH credentials, OS information, and VM size. In dit voorbeeld is de SSH-sleutel opgeslagen in ~/.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"

Combineer nu de vorige configuratiedefinities met New-AzVM:Now, combine the previous configuration definitions to create with New-AzVM:

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

Het duurt een paar minuten voor uw virtuele machine is geïmplementeerd.It will take a few minutes for your VM to be deployed. Wanneer de implementatie is voltooid, gaat u verder naar de volgende sectie.When the deployment is finished, move on to the next section.

Verbinding maken met de virtuele machineConnect to the VM

Maak een SSH-verbinding met de virtuele machine met behulp van het openbare IP-adres.Create an SSH connection with the VM using the public IP address. Gebruik de cmdlet Get-AzPublicIpAddress om het openbare IP-adres van de virtuele machine te bekijken:To see the public IP address of the VM, use the Get-AzPublicIpAddress cmdlet:

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

Met behulp van dezelfde bash-shell die u hebt gebruikt om uw SSH-sleutelpaar te maken (zoals de Azure Cloud Shell of uw lokale bash-shell), plakt u de opdracht voor de SSH-verbinding in de shell om een SSH-sessie te maken.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

Als u hierom wordt gevraagd, is de gebruikersnaam voor het aanmelden azureuser.When prompted, the login user name is azureuser. Als een wachtwoordzin met uw SSH-sleutels wordt gebruikt, moet u deze invoeren wanneer u daarom wordt gevraagd.If a passphrase is used with your SSH keys, you need to enter that when prompted.

NGINX installerenInstall NGINX

Als u uw VM in actie wilt zien, installeert u de NGINX-webserver.To see your VM in action, install the NGINX web server. Werk vanuit uw SSH-sessie de pakketbronnen bij en installeer het meest recente NGINX-pakket.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

Wanneer u klaar bent, typt u exit om de SSH-sessie te verlaten.When done, type exit to leave the SSH session.

De webserver in actie zienView the web server in action

Gebruik een webbrowser naar keuze om de standaard NGINX-welkomstpagina weer te geven.Use a web browser of your choice to view the default NGINX welcome page. Gebruik het openbare IP-adres van uw VM als het webadres.Enter the public IP address of the VM as the web address. Het openbare IP-adres kan worden gevonden op de overzichtspagina van de virtuele machine of als onderdeel van de SSH-verbindingsreeks die u eerder hebt gebruikt.The public IP address can be found on the VM overview page or as part of the SSH connection string you used earlier.

NGINX standaard welkomst pagina

Resources opschonenClean up resources

U kunt de cmdlet Remove-AzResourceGroup gebruiken om de resourcegroep, de VM en alle gerelateerde resources te verwijderen wanneer u ze niet meer nodig hebt: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"

Volgende stappenNext steps

In deze snelstart hebt u een eenvoudige virtuele machine geïmplementeerd, een netwerkbeveiligingsgroep en -regel gemaakt en een eenvoudige webserver geïnstalleerd.In this quickstart, you deployed a simple virtual machine, created a Network Security Group and rule, and installed a basic web server. Voor meer informatie over virtuele machines in Azure, gaat u verder met de zelfstudie voor virtuele Linux-machines.To learn more about Azure virtual machines, continue to the tutorial for Linux VMs.