Snabbstart: Skapa en virtuell Linux-dator i Azure med PowerShell

Gäller för: ✔️ Virtuella Linux-datorer

Azure PowerShell-modulen används för att skapa och hantera Azure-resurser från PowerShell-kommandoraden eller i skript. Den här snabbstarten beskriver hur du använder Azure PowerShell-modulen för att distribuera en virtuell Linux-dator (VM) i Azure. I den här snabbstarten används Ubuntu 18.04 LTS Marketplace-avbildningen från Canonical. För att se hur den virtuella datorn fungerar i praktiken använder du sedan SSH för att ansluta till den virtuella datorn och installerar NGINX-webbservern.

Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

Starta Azure Cloud Shell

Azure Cloud Shell är ett interaktivt gränssnitt som du kan använda för att utföra stegen i den här artikeln. Den har vanliga Azure-verktyg förinstallerat och har konfigurerats för användning med ditt konto.

Om du vill öppna Cloud Shell väljer du bara Prova från det övre högra hörnet i ett kodblock. Kopiera kodblocket genom att välja Kopiera, klistra in det i Cloud Shell och kör det genom att trycka på RETUR.

Skapa SSH-nyckelpar

Använd ssh-keygen för att skapa ett SSH-nyckelpar. Om du redan har ett SSH-nyckelpar kan du hoppa över det här steget.

ssh-keygen -t rsa -b 4096

Du uppmanas att ange ett filnamn för nyckelparet eller så kan du trycka på Retur för att använda standardplatsen för /home/<username>/.ssh/id_rsa . Du kommer också att kunna skapa ett lösenord för nycklarna om du vill.

Mer detaljerad information om hur du skapar SSH-nyckelpar finns i Använda SSH-nycklar med Windows.

Om du skapar ditt SSH-nyckelpar med Cloud Shell lagras det i ett lagringskonto som skapas automatiskt av Cloud Shell. Ta inte bort lagringskontot eller filresursen i det förrän du har hämtat dina nycklar, annars förlorar du åtkomsten till den virtuella datorn.

Skapa en resursgrupp

Skapa en Azure-resursgrupp med New-AzResourceGroup. En resursgrupp är en logisk container där Azure-resurser distribueras och hanteras:

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

Skapa virtuella nätverksresurser

Skapa ett virtuellt nätverk, undernät och offentlig IP-adress. Dessa resurser används för att tillhandahålla nätverksanslutning till den virtuella datorn och ansluta den till 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)"

Skapa en Azure-nätverkssäkerhetsgrupp och trafikregel. Nätverkssäkerhetsgruppen skyddar den virtuella datorn med regler för inkommande och utgående trafik. I följande exempel skapas en regel för inkommande trafik för TCP-port 22 som tillåter SSH-anslutningar. För att tillåta inkommande webbtrafik skapas också en regel för inkommande trafik för TCP-port 80.

# 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

Skapa ett virtuellt nätverkskort (NIC) med New-AzNetworkInterface. Det virtuella nätverkskortet ansluter den virtuella datorn till ett undernät, en nätverkssäkerhetsgrupp och en offentlig IP-adress.

# 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

Skapa en virtuell dator

Om du vill skapa en virtuell dator i PowerShell skapar du en konfiguration som har inställningar som avbildningen för alternativ för användning, storlek och autentisering. Konfigurationen används sedan till att skapa den virtuella datorn.

Definiera SSH-autentiseringsuppgifterna, informationen om operativsystemet och VM-storleken. I det här exemplet lagras SSH-nyckeln i ~/.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_v2" | `
Set-AzVMOperatingSystem `
  -Linux `
  -ComputerName "myVM" `
  -Credential $cred `
  -DisablePasswordAuthentication | `
Set-AzVMSourceImage `
  -PublisherName "Canonical" `
  -Offer "UbuntuServer" `
  -Skus "18.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"

Kombinera de tidigare konfigurationsdefinitionerna för att skapa den virtuella datorn med New-AzVM:

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

Det tar några minuter för den virtuella datorn att distribueras. När distributionen är klar kan du gå vidare till nästa avsnitt.

Anteckning

Azure tillhandahåller en standard-IP för utgående åtkomst för Azure Virtual Machines som inte är tilldelade en offentlig IP-adress eller finns i backend-poolen för en intern Basic-Azure Load Balancer. Standardmekanismen för utgående åtkomst-IP ger en utgående IP-adress som inte kan konfigureras.

Mer information om standardutgående åtkomst finns i Standard för utgående åtkomst i Azure

Standard-IP för utgående åtkomst är inaktiverat när en offentlig IP-adress tilldelas till den virtuella datorn, eller om den virtuella datorn placeras i serverpoolen för en Standard Load Balancer med eller utan regler för utgående trafik. Om en Azure Virtual Network NAT gateway-resurs har tilldelats till undernätet för den virtuella datorn inaktiveras standard-IP för utgående åtkomst.

Virtuella datorer som skapats av VM-skalningsuppsättningar i läget Flexibel orkestrering har inte utgående standardåtkomst.

Mer information om utgående anslutningar i Azure finns i Använda källnätverksadressöversättning (SNAT) för utgående anslutningar.

Anslut till VM:en

Skapa en SSH-anslutning med den virtuella datorn med hjälp av en offentlig IP-adress. Du hämtar den virtuella datorns offentliga IP-adress genom att köra cmdleten Get-AzPublicIpAddress:

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

Använd samma gränssnitt som du använde för att skapa SSH-nyckelparet och klistra in följande kommando i gränssnittet för att skapa en SSH-session. Ersätt 10.111.12.123 med IP-adressen för den virtuella datorn.

ssh azureuser@10.111.12.123

När du får en uppmaning är azureuser användarnamnet för inloggningen. Om du använder en lösenfras med dina SSH-nycklar måste du ange den när du uppmanas att göra det.

Installera NGINX

Om du vill se hur den virtuella datorn fungerar i praktiken installerar du NGINX-webbservern. Från din SSH-session uppdaterar du dina paketkällor och installera det senaste NGINX-paketet.

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

När du är klar avslutar du SSH-sessionen genom att skriva exit.

Se hur webbservern fungerar i praktiken

Använd valfri webbläsare för att visa välkomstsidan för NGINX. Ange den virtuella datorns offentliga IP-adress som webbadress. Den offentliga IP-adressen kan hittas på översiktssidan för den virtuella datorn eller som en del av SSH-anslutningssträngen du använde tidigare.

NGINX-standard välkomstsida

Rensa resurser

När de inte längre behövs använder du cmdleten Remove-AzResourceGroup för att ta bort resursgruppen, den virtuella datorn och alla relaterade resurser:

Remove-AzResourceGroup -Name "myResourceGroup"

Nästa steg

I den här snabbstarten distribuerade du en enkel virtuell dator, skapade en nätverkssäkerhetsgrupp och en regel och installerade en enkel webbserver. Om du vill veta mer om virtuella Azure-datorer fortsätter du till självstudien för virtuella Linux-datorer.