Szybki start: tworzenie maszyny wirtualnej z systemem Linux za pomocą programu Azure PowerShellQuickstart: Create a Linux virtual machine in Azure with PowerShell

Moduł Azure PowerShell umożliwia tworzenie zasobów platformy Azure i zarządzanie nimi za pomocą wiersza polecenia programu PowerShell lub skryptów.The Azure PowerShell module is used to create and manage Azure resources from the PowerShell command line or in scripts. Z tego przewodnika Szybki start dowiesz się, jak za pomocą modułu programu Azure PowerShell wdrożyć maszynę wirtualną z systemem Linux na platformie Azure.This quickstart shows you how to use the Azure PowerShell module to deploy a Linux virtual machine (VM) in Azure. W ramach tego przewodnika Szybki start jest używany obraz systemu Ubuntu 16.04 LTS od firmy Canonical pochodzący z witryny Marketplace.This quickstart uses the Ubuntu 16.04 LTS marketplace image from Canonical. Aby zobaczyć działanie maszyny wirtualnej, połączysz się z nią za pomocą protokołu SSH i zainstalujesz serwer internetowy NGINX.To see your VM in action, you'll also SSH to the VM and install the NGINX web server.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.If you don't have an Azure subscription, create a free account before you begin.

Uruchamianie usługi Azure Cloud ShellLaunch Azure Cloud Shell

Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, której możesz używać do wykonywania kroków opisanych w tym artykule.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Udostępnia ona wstępnie zainstalowane i najczęściej używane narzędzia platformy Azure, które są skonfigurowane do użycia na koncie.It has common Azure tools preinstalled and configured to use with your account.

Aby otworzyć usługę Cloud Shell, wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu.To open the Cloud Shell, just select Try it from the upper right corner of a code block. Wybierz przycisk Kopiuj, aby skopiować bloki kodu, wklej je do usługi Cloud Shell, a następnie naciśnij klawisz Enter, aby je uruchomić.Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

Tworzenie pary kluczy SSHCreate SSH key pair

Do wykonania kroków tego przewodnika Szybki start konieczne jest posiadanie pary kluczy SSH.You need an SSH key pair to complete this quickstart. Jeśli masz już parę kluczy SSH, możesz pominąć ten krok.If you already have an SSH key pair, you can skip this step.

Otwórz powłokę Bash i użyj polecenia ssh-keygen, aby utworzyć parę kluczy SSH.Open a bash shell and use ssh-keygen to create an SSH key pair. Jeśli nie masz powłoki Bash na swoim komputerze lokalnym, możesz użyć usługi 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

Aby uzyskać bardziej szczegółowe informacje na temat tworzenia par kluczy SSH, łącznie z użyciem programu PuTTy, zobacz Jak używać kluczy SSH w systemie 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.

Jeśli utworzysz parę kluczy SSH przy użyciu usługi Cloud Shell, będzie ona przechowywana w obrazie kontenera w ramach konta magazynu automatycznie tworzonego przez usługę 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. Nie usuwaj tego konta magazynu ani znajdującego się w nim udziału plików, dopóki nie pobierzesz kluczy. W przeciwnym razie utracisz dostęp do maszyny wirtualnej.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.

Tworzenie grupy zasobówCreate a resource group

Utwórz grupę zasobów platformy Azure za pomocą polecenia New-AzResourceGroup.Create an Azure resource group with New-AzResourceGroup. Grupa zasobów to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi:A resource group is a logical container into which Azure resources are deployed and managed:

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

Tworzenie zasobów sieci wirtualnejCreate virtual network resources

Utwórz sieć wirtualną, podsieć i publiczny adres IP.Create a virtual network, subnet, and a public IP address. Te zasoby są używane do zapewniania łączności sieciowej z maszyną wirtualną i łączenia jej z Internetem: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)"

Utwórz sieciową grupę zabezpieczeń i regułę ruchu.Create an Azure Network Security Group and traffic rule. Sieciowa grupa zabezpieczeń chroni maszynę wirtualną za pomocą reguł ruchu przychodzącego i wychodzącego.The Network Security Group secures the VM with inbound and outbound rules. W poniższym przykładzie utworzono regułę ruchu przychodzącego dla portu TCP 22, która zezwala na połączenia SSH.In the following example, an inbound rule is created for TCP port 22 that allows SSH connections. Aby zezwolić na przychodzący ruch internetowy, utworzono także regułę ruchu przychodzącego dla portu TCP 80.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

Utwórz wirtualną kartę sieciową za pomocą polecenia New-AzNetworkInterface.Create a virtual network interface card (NIC) with New-AzNetworkInterface. Wirtualna karta sieciowa łączy maszynę wirtualną z podsiecią, sieciową grupą zabezpieczeń i publicznym adresem IP.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

Tworzenie maszyny wirtualnejCreate a virtual machine

Aby utworzyć maszynę wirtualną w programie PowerShell, należy utworzyć konfigurację obejmującą ustawienia, takie jak obraz do użycia, rozmiar i opcje uwierzytelniania.To create a VM in PowerShell, you create a configuration that has settings like the image to use, size, and authentication options. Następnie konfiguracja jest używana do utworzenia maszyny wirtualnej.Then the configuration is used to build the VM.

Zdefiniuj poświadczenia protokołu SSH, informacje o systemie operacyjnym i rozmiar maszyny wirtualnej.Define the SSH credentials, OS information, and VM size. W tym przykładzie klucz SSH znajduje się w lokalizacji ~/.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"

Teraz połącz wcześniejsze definicje konfiguracji do utworzenia za pomocą polecenia New-AzVM:Now, combine the previous configuration definitions to create with New-AzVM:

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

Wdrożenie maszyny wirtualnej potrwa kilka minut.It will take a few minutes for your VM to be deployed. Po zakończeniu wdrażania przejdź do następnej sekcji.When the deployment is finished, move on to the next section.

Łączenie z maszyną wirtualnąConnect to the VM

Nawiąż połączenie SSH z maszyną wirtualną przy użyciu publicznego adresu IP.Create an SSH connection with the VM using the public IP address. Aby wyświetlić publiczny adres IP maszyny wirtualnej, użyj polecenia cmdlet Get-AzPublicIpAddress:To see the public IP address of the VM, use the Get-AzPublicIpAddress cmdlet:

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

Korzystając z tej samej powłoki Bash, która została użyta do utworzenia pary kluczy SSH, takiej jak usługa Azure Cloud Shell lub lokalna powłoka Bash, wklej polecenie połączenia SSH w powłoce, aby utworzyć sesję 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

Po wyświetleniu monitu podaj nazwę logowania użytkownika azureuser.When prompted, the login user name is azureuser. Jeśli razem z kluczami SSH używane jest hasło, należy je wprowadzić, gdy zostanie wyświetlony monit.If a passphrase is used with your SSH keys, you need to enter that when prompted.

Instalowanie serwera NGINXInstall NGINX

Aby zobaczyć działanie maszyny wirtualnej, zainstaluj serwer internetowy NGINX.To see your VM in action, install the NGINX web server. Z poziomu sesji SSH zaktualizuj źródła pakietu, a następnie zainstaluj najnowszą wersję pakietu 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

Gdy skończysz, wpisz polecenie exit, aby opuścić sesję SSH.When done, type exit to leave the SSH session.

Oglądanie działającego serwera internetowegoView the web server in action

Użyj wybranej przeglądarki internetowej, aby wyświetlić domyślną strona główną serwera NGINX.Use a web browser of your choice to view the default NGINX welcome page. Wprowadź publiczny adres IP maszyny wirtualnej jako adres internetowy.Enter the public IP address of the VM as the web address. Publiczny adres IP można znaleźć na stronie przeglądu maszyny wirtualnej lub jako część wcześniej użytych parametrów połączenia SSH.The public IP address can be found on the VM overview page or as part of the SSH connection string you used earlier.

NGINX domyślna strona powitalna

Oczyszczanie zasobówClean up resources

Gdy grupa zasobów, maszyna wirtualna i wszystkie pokrewne zasoby nie będą już potrzebne, można je usunąć za pomocą polecenia cmdlet Remove-AzResourceGroup: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"

Następne krokiNext steps

W tym przewodniku Szybki start wdrożono prostą maszynę wirtualną, utworzono sieciową grupę zabezpieczeń i regułę oraz zainstalowano podstawowy serwer internetowy.In this quickstart, you deployed a simple virtual machine, created a Network Security Group and rule, and installed a basic web server. Aby dowiedzieć się więcej o maszynach wirtualnych platformy Azure, przejdź do samouczka dla maszyn wirtualnych z systemem Linux.To learn more about Azure virtual machines, continue to the tutorial for Linux VMs.