Краткое руководство. Создание виртуальной машины Linux в Azure с помощью PowerShellQuickstart: Create a Linux virtual machine in Azure with PowerShell

Модуль PowerShell используется для создания ресурсов Azure и управления ими с помощью командной строки PowerShell или сценариев.The Azure PowerShell module is used to create and manage Azure resources from the PowerShell command line or in scripts. В этом кратком руководстве показано, как с помощью модуля Azure PowerShell развернуть в Azure виртуальную машину Linux.This quickstart shows you how to use the Azure PowerShell module to deploy a Linux virtual machine (VM) in Azure. В этом кратком руководстве используется образ Marketplace Ubuntu 16.04 LTS от Canonical.This quickstart uses the Ubuntu 16.04 LTS marketplace image from Canonical. Чтобы проверить работу виртуальной машины, вы также подключитесь к ней по протоколу SSH и установите веб-сервер NGINX.To see your VM in action, you'll also SSH to the VM and install the NGINX web server.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.If you don't have an Azure subscription, create a free account before you begin.

Запуск Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью.It has common Azure tools preinstalled and configured to use with your account.

Чтобы открыть Cloud Shell, просто выберите Попробовать в правом верхнем углу блока кода.To open the Cloud Shell, just select Try it from the upper right corner of a code block. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте код в Cloud Shell и нажмите клавишу "ВВОД", чтобы выполнить его.Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

Создание пары ключей SSHCreate SSH key pair

Для работы с этим кратким руководством вам понадобится пара ключей SSH.You need an SSH key pair to complete this quickstart. Если у вас уже есть эта пара, можно перейти к следующему шагу.If you already have an SSH key pair, you can skip this step.

Откройте оболочку bash и выполните команду ssh-keygen, чтобы создать пару ключей SSH.Open a bash shell and use ssh-keygen to create an SSH key pair. Если на вашем локальном компьютере отсутствует оболочка bash, вы можете воспользоваться 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

Подробные сведения о создании пар ключей SSH, в том числе с помощью PuTTy, вы найдете в статье Как использовать ключи SSH с Windows в 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.

Если вы создали пару ключей SSH при помощи Cloud Shell, она будет сохранена в образе контейнера в учетной записи хранения, которую 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. Не удаляйте этот файловый ресурс или учетную запись хранения, пока вы не получите ключи, иначе вы потеряете доступ к виртуальной машине.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.

Создание группы ресурсовCreate a resource group

Создайте группу ресурсов Azure с помощью командлета New-AzResourceGroup.Create an Azure resource group with New-AzResourceGroup. Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure и управление ими.A resource group is a logical container into which Azure resources are deployed and managed:

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

Создание ресурсов виртуальной сетиCreate virtual network resources

Создайте виртуальную сеть, подсеть и общедоступный IP-адрес.Create a virtual network, subnet, and a public IP address. Эти ресурсы используются для того, чтобы установить сетевое подключение к виртуальной машине и подключить ее к Интернету.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)"

Создайте группу безопасности сети Azure и правило трафика.Create an Azure Network Security Group and traffic rule. Группа безопасности сети защищает виртуальную машину с помощью правил для входящего и исходящего трафика.The Network Security Group secures the VM with inbound and outbound rules. В следующем примере создается правило входящего подключения для TCP-порта 22, который используется для подключений по протоколу SSH.In the following example, an inbound rule is created for TCP port 22 that allows SSH connections. Чтобы разрешить входящий веб-трафик, также создается правило для входящего трафика по 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

Создайте виртуальный сетевой адаптер с помощью командлета New-AzNetworkInterface.Create a virtual network interface card (NIC) with New-AzNetworkInterface. Виртуальный сетевой адаптер подключает виртуальную машину к подсети, группе безопасности сети и общедоступному 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

Создание виртуальной машиныCreate a virtual machine

Чтобы создать виртуальную машину в PowerShell, создайте конфигурацию, у которой будут такие параметры, как используемый образ, размер и параметры проверки подлинности.To create a VM in PowerShell, you create a configuration that has settings like the image to use, size, and authentication options. Затем эта конфигурация используется для создания виртуальной машины.Then the configuration is used to build the VM.

Задайте учетные данные для SSH, сведения об ОС и размер виртуальной машины.Define the SSH credentials, OS information, and VM size. В этом примере ключ SSH хранится в ~/.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"

Теперь объедините описанные выше определения конфигурации в командлете создания New-AzVM:Now, combine the previous configuration definitions to create with New-AzVM:

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

Развертывание виртуальной машины может занять несколько минут.It will take a few minutes for your VM to be deployed. После завершения развертывания перейдите к следующему разделу.When the deployment is finished, move on to the next section.

Подключение к виртуальной машинеConnect to the VM

Установите SSH-подключение к виртуальной машине, используя общедоступный IP-адрес.Create an SSH connection with the VM using the public IP address. Чтобы узнать общедоступный IP-адрес виртуальной машины, выполните командлет Get-AzPublicIpAddress:To see the public IP address of the VM, use the Get-AzPublicIpAddress cmdlet:

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

В той же оболочке bash, в которой вы создали пару ключей SSH (например, Azure Cloud Shell или оболочка bash на локальном компьютере), вставьте команду подключения в оболочку, чтобы создать сеанс 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

При появлении запроса на имя пользователя для входа введите azureuser.When prompted, the login user name is azureuser. Если используется парольная фраза с ключами SSH, предоставьте ее в ответ на соответствующий запрос.If a passphrase is used with your SSH keys, you need to enter that when prompted.

Установка nginxInstall NGINX

Чтобы проверить работу виртуальной машины, установите веб-сервер NGINX.To see your VM in action, install the NGINX web server. Из сеанса SSH обновите источники пакетов, а затем установите последнюю версию пакета 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

После этого введите exit, чтобы выйти из сеанса SSH.When done, type exit to leave the SSH session.

Проверка работы веб-сервераView the web server in action

Страницу приветствия NGINX по умолчанию можно просмотреть в любом веб-браузере.Use a web browser of your choice to view the default NGINX welcome page. Введите общедоступный IP-адрес виртуальной машины в качестве веб-адреса.Enter the public IP address of the VM as the web address. Общедоступный IP-адрес можно найти на странице общих сведений о виртуальной машине. Также он является частью строки подключения 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 по умолчанию

Очистка ресурсовClean up resources

Вы можете удалить ненужную группу ресурсов, виртуальную машину и все связанные с ней ресурсы, выполнив командлет 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"

Дополнительная информацияNext steps

При работе с этим кратким руководство вы развернули простую виртуальную машину, создали группу безопасности сети и правило для нее, а также установили простой веб-сервер.In this quickstart, you deployed a simple virtual machine, created a Network Security Group and rule, and installed a basic web server. Дополнительные сведения о виртуальных машинах Azure см. в руководстве для виртуальных машин Linux.To learn more about Azure virtual machines, continue to the tutorial for Linux VMs.