Schnellstart: Erstellen einer Linux-VM mit PowerShell in AzureQuickstart: Create a Linux virtual machine in Azure with PowerShell

Das Azure PowerShell-Modul dient zum Erstellen und Verwalten von Azure-Ressourcen über die PowerShell-Befehlszeile oder mit Skripts.The Azure PowerShell module is used to create and manage Azure resources from the PowerShell command line or in scripts. Diese Schnellstartanleitung zeigt, wie Sie mit dem Azure PowerShell-Modul einen virtuellen Linux-Computer in Azure bereitstellen.This quickstart shows you how to use the Azure PowerShell module to deploy a Linux virtual machine (VM) in Azure. In dieser Schnellstartanleitung wird das Ubuntu 16.04 LTS-Marketplace-Image von Canonical verwendet.This quickstart uses the Ubuntu 16.04 LTS marketplace image from Canonical. Um den virtuellen Computer in Aktion zu sehen, stellen Sie außerdem eine SSH-Verbindung mit dem virtuellen Computer her und installieren den NGINX-Webserver.To see your VM in action, you'll also SSH to the VM and install the NGINX web server.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

Starten von Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Schritte in diesem Artikel ausführen können.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Sie verfügt über allgemeine vorinstallierte Tools und ist für die Verwendung mit Ihrem Konto konfiguriert.It has common Azure tools preinstalled and configured to use with your account.

Wählen Sie zum Öffnen von Cloud Shell oben rechts in einem Codeblock einfach die Option Ausprobieren.To open the Cloud Shell, just select Try it from the upper right corner of a code block. Wählen Sie Kopieren, um die Blöcke mit dem Code zu kopieren. Fügen Sie ihn anschließend in Cloud Shell ein, und drücken Sie die EINGABETASTE, um ihn auszuführen.Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

Erstellen eines SSH-SchlüsselpaarsCreate SSH key pair

Für diesen Schnellstart benötigen Sie ein SSH-Schlüsselpaar.You need an SSH key pair to complete this quickstart. Falls Sie bereits über ein SSH-Schlüsselpaar verfügen, können Sie diesen Schritt überspringen.If you already have an SSH key pair, you can skip this step.

Öffnen Sie eine Bash-Shell, und verwenden ssh-keygen, um ein SSH-Schlüsselpaar zu erstellen.Open a bash shell and use ssh-keygen to create an SSH key pair. Sollte auf Ihrem Computer keine Bash-Shell zur Verfügung stehen, können Sie auch Azure Cloud Shell verwenden.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

Ausführlichere Informationen zum Erstellen von SSH-Schlüsselpaaren, u.a. zur Verwendung von PuTTy, finden Sie unter Verwenden von SSH-Schlüsseln mit Windows in Azure.For more detailed information on how to create SSH key pairs, including the use of PuTTy, see How to use SSH keys with Windows.

Wenn Sie Ihr SSH-Schlüsselpaar mithilfe von Cloud Shell erstellen, wird es in einem Containerimage in einem automatisch von Cloud Shell erstellten Speicherkonto gespeichert.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. Wenn Sie das Speicherkonto oder die darin enthaltene Dateifreigabe löschen, bevor Sie Ihre Schlüssel abgerufen haben, können Sie nicht mehr auf den virtuellen Computer zugreifen.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.

Erstellen einer RessourcengruppeCreate a resource group

Erstellen Sie mit New-AzResourceGroup eine Azure-Ressourcengruppe.Create an Azure resource group with New-AzResourceGroup. Eine Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden:A resource group is a logical container into which Azure resources are deployed and managed:

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

Erstellen virtueller NetzwerkressourcenCreate virtual network resources

Erstellen Sie ein virtuelles Netzwerk, ein Subnetz und eine öffentliche IP-Adresse.Create a virtual network, subnet, and a public IP address. Diese Ressourcen dienen dazu, Netzwerkkonnektivität für den virtuellen Computer bereitzustellen und ihn mit dem Internet zu verbinden: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)"

Erstellen Sie eine Azure-Netzwerksicherheitsgruppe und eine Regel für den Datenverkehr.Create an Azure Network Security Group and traffic rule. Die Netzwerksicherheitsgruppe schützt den virtuellen Computer mithilfe von Regeln für eingehenden und ausgehenden Datenverkehr.The Network Security Group secures the VM with inbound and outbound rules. Im folgenden Beispiel wird für TCP-Port 22 eine Regel für eingehenden Datenverkehr erstellt, die SSH-Verbindungen zulässt.In the following example, an inbound rule is created for TCP port 22 that allows SSH connections. Um eingehenden Webdatenverkehr zuzulassen, wird auch für TCP-Port 80 eine Regel für eingehenden Datenverkehr erstellt.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

Erstellen Sie mit New-AzNetworkInterface eine virtuelle Netzwerkschnittstellenkarte (Network Interface Card, NIC).Create a virtual network interface card (NIC) with New-AzNetworkInterface. Die virtuelle NIC verbindet den virtuellen Computer mit einem Subnetz, einer Netzwerksicherheitsgruppe und einer öffentlichen IP-Adresse.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

Erstellen eines virtuellen ComputersCreate a virtual machine

Wenn Sie einen virtuellen Computer in PowerShell erstellen möchten, erstellen Sie eine Konfiguration mit Einstellungen wie dem zu verwendenden Image, der Größe und den Authentifizierungsoptionen.To create a VM in PowerShell, you create a configuration that has settings like the image to use, size, and authentication options. Diese Konfiguration wird dann verwendet, um den virtuellen Computer zu erstellen.Then the configuration is used to build the VM.

Definieren Sie die SSH-Anmeldeinformationen, die Betriebssysteminformationen und die VM-Größe.Define the SSH credentials, OS information, and VM size. In diesem Beispiel befindet sich der SSH-Schlüssel 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"

Kombinieren Sie jetzt die vorherigen Konfigurationsdefinitionen für die Erstellung mit New-AzVM:Now, combine the previous configuration definitions to create with New-AzVM:

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

Die Bereitstellung des virtuellen Computers dauert ein paar Minuten.It will take a few minutes for your VM to be deployed. Fahren Sie nach Abschluss der Bereitstellung mit dem nächsten Abschnitt fort.When the deployment is finished, move on to the next section.

Herstellen der Verbindung zur VMConnect to the VM

Erstellen Sie eine SSH-Verbindung mit dem virtuellen Computer unter Verwendung der öffentlichen IP-Adresse.Create an SSH connection with the VM using the public IP address. Verwenden Sie zum Anzeigen der öffentlichen IP-Adresse der VM das Cmdlet Get-AzPublicIpAddress:To see the public IP address of the VM, use the Get-AzPublicIpAddress cmdlet:

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

Verwenden Sie die gleiche Bash-Shell, die Sie auch zum Erstellen Ihres SSH-Schlüsselpaars verwendet haben (also beispielsweise Azure Cloud Shell oder Ihre lokale Bash-Shell), und fügen Sie den SSH-Verbindungsbefehl ein, um eine SSH-Sitzung zu erstellen.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

Geben Sie bei Aufforderung den Anmeldebenutzernamen azureuser ein.When prompted, the login user name is azureuser. Wenn eine Passphrase mit Ihren SSH-Schlüsseln verwendet wird, müssen Sie diese eingeben, wenn Sie dazu aufgefordert werden.If a passphrase is used with your SSH keys, you need to enter that when prompted.

Installieren von NGINXInstall NGINX

Wenn Sie den virtuellen Computer in Aktion sehen möchten, installieren Sie den NGINX-Webserver.To see your VM in action, install the NGINX web server. Aktualisieren Sie über die SSH-Sitzung Ihre Paketquellen, und installieren Sie dann das aktuelle NGINX-Paket.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

Geben Sie abschließend exit ein, um die SSH-Sitzung zu verlassen.When done, type exit to leave the SSH session.

Anzeigen des Webservers in AktionView the web server in action

Verwenden Sie einen beliebigen Webbrowser, um die Standardwillkommensseite von NGINX anzuzeigen.Use a web browser of your choice to view the default NGINX welcome page. Geben Sie die öffentliche IP-Adresse Ihres virtuellen Computers als Webadresse ein.Enter the public IP address of the VM as the web address. Die öffentliche IP-Adresse finden Sie auf der Übersichtsseite für den virtuellen Computer sowie in der weiter oben verwendeten SSH-Verbindungszeichenfolge.The public IP address can be found on the VM overview page or as part of the SSH connection string you used earlier.

NGINX-Standardwillkommensseite

Bereinigen von RessourcenClean up resources

Wenn die Ressourcengruppe, die VM und alle dazugehörigen Ressourcen nicht mehr benötigt werden, können Sie sie mit dem Cmdlet Remove-AzResourceGroup entfernen: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"

Nächste SchritteNext steps

In dieser Schnellstartanleitung haben Sie einen einfachen virtuellen Computer bereitgestellt, eine Netzwerksicherheitsgruppe und eine Regel erstellt sowie einen einfachen Webserver installiert.In this quickstart, you deployed a simple virtual machine, created a Network Security Group and rule, and installed a basic web server. Fahren Sie mit dem Tutorial für virtuelle Linux-Computer fort, um weitere Informationen zu virtuellen Azure-Computern zu erhalten.To learn more about Azure virtual machines, continue to the tutorial for Linux VMs.