В данной статье будет продемонстрировано, как создать виртуальные машины Linux в Microsoft Azure. Будут рассмотрены следующие способы на примере «Ubuntu Server 15.04»:
Также будет продемонстрировано:
- Создание ключей для дальнейшего использования при создании ВМ
- Подключение к созданным ВМ с помощью Putty (бесплатного клиента SSH)
Предварительные действия
Перед созданием виртуальной машины Linux желательно выполнить следующие предварительные действия:
- Установить модуль Microsoft Azure Powershell
- Добавить учетную запись для использования с Microsoft Azure Powershell
- Создать пару открытый/закрытый ключ для дальнейшего использования при создании ВМ и подключения к ней
- Создать на портале облачную службу и загрузить туда сертификат, содержащий открытый ключ
Установка модуля Microsoft Azure Powershell
Для обеспечения возможности создания виртуальных машин с использованием Powershell, необходимо установить модуль Microsoft Azure Powershell с помощью Microsoft Web Platform Installer. Для этого здесь скачивается и устанавливается дистрибутив. После установки в меню «Пуск» появится ярлык Microsoft Azure Powershell.
Добавление учетной записи для использования с Microsoft Azure Powershell
Для возможности использовать командлеты Microsoft Azure необходимо зарегистрировать в локальной системе учетные записи Azure. Для этого необходимо следующее.
- Запустить установленную ранее консоль Microsoft Azure Powershell.
- В окне Microsoft Azure Powershell выполнить следующую команду: Add-AzureAccountВ появившемся приглашении ввести e-mail и пароль, связанные с учетной записью Azure:
- В появившемся приглашении необходимо выполнить вход с учетной записью Azure. В случае успешного подключения вы увидите таблицу, в которой будет указана учетная запись со списком доступных подписок:
Учетная запись будет зарегистрирована в локальной системе. Если требуется отменить регистрацию, необходимо в окне Microsoft Azure Powershell выполнить следующую команду:
Создание пары открытый/закрытый ключ
Для обеспечения дополнительной безопасности перед созданием ВМ рекомендуется создать пару открытый/закрытый ключ. Открытый ключ будет использоваться при создании ВМ, закрытый ключ будет использоваться в дальнейшем для авторизации при подключении к ВМ. Рекомендуется подготовить пару ключей для каждой создаваемой ВМ.
Рассмотрим пример создания открытого и закрытого ключей с применением свободно распространяемого криптографического пакета OpenSSL:
- Создаем на диске C:папку OpenSSL.
- Скачиваем здесь архив с последней версией исполняемых файлов OpenSSL (на момент написания статьи архив с последней версией был openssl-1.0.2a-x64_86-win64.zip).
- Распаковываем архив в созданную ранее папку С:\OpenSSL.
- Запускаем интерпретатор командной строки. Для этого нажимаем сочетание клавиш Win+R, вводим в открывшемся диалоге cmd и нажимаем ОК.
- В открывшемся окне интерпретатора командной строки вводим следующие команды:
cd \openssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout PrivateKey.key -out Cert.pem
Запустится процесс генерации ключей (параметр -days определяет срок действия создаваемых ключей; в примере — 1 год, но можно указать любое разумное значение). После окончания генерации ключей введите двухбуквенный код страны (RU), организацию (Organization name), остальные поля к заполнению необязательны – можно пропустить, нажимая Enter:
На этом подготовка ключей закончена – в папке C:\OpenSSLбудет создано два файла: PrivateKey.key и Cert.pem. После создания ключей необходимо преобразовать открытый ключ в сертификат в формате DER, требуемый Microsoft Azure. Для этого в открытом окне интерпретатора командной строки вводим следующую команду:
В папке C:\OpenSSLбудет создан файл Cert.cer, который будет использоваться при создании ВМ. Для возможности в дальнейшем использовать закрытый ключ для подключения к ВМ с помощью PuTTY, необходимо его преобразовать в нужный формат. Для этого в открытом окне интерпретатора командной строки вводим следующую команду:
В папке C:\OpenSSLбудет создан файл PrivateKey.rsa, который будет использоваться в дальнейшем для подключения к ВМ с помощью PuTTY.
Создание облачной службы и загрузка сертификатов для использования при создании виртуальных машин при помощи Powershell
Создание облачной службы с помощью мастера на портале
Для выполнения действий на портале необходимо в браузере открыть ссылку https://manage.windowsazure.com/ и выполнить вход. Для вызова мастера создания облачной службы необходимо перейти в раздел «ОБЛАЧНЫЕ СЛУЖБЫ» и нажать в нижней строке инструментов кнопку «Создать»:
В открывшемся мастере необходимо указать:
- Уникальное DNS-имя службы;
- Регион, в датацентре которого будет размещена ВМ;
- Подписка, с которой будут списываться средства за потребленные ресурсы.
Загрузка сертификата с помощью мастера на портале
Для вызова мастера загрузки сертификата необходимо перейти в раздел «ОБЛАЧНЫЕ СЛУЖБЫ», выбрать необходимую облачную службу и перейти в подраздел «СЕРТИФИКАТЫ». В нижней строке инструментов нажать кнопку «ПЕРЕДАТЬ». В открывшемся мастере выбрать файл сертификата и нажать кнопку «ОК»:
Создание облачной службы с помощью Powershell
Первоначально необходимо определить регион, в датацентре которого будут создаваться связанные с подпиской ресурсы. Для получения списка доступных регионов для текущей подписки необходимо в окне Microsoft Azure Powershell ввести следующую команду:
Выбрать подходящий регион из списка:
Для создания службы необходимо в окне Microsoft Azure Powershell ввести следующую команду:
Загрузка сертификата с помощью Powershell
Для загрузки сертификата в облачную службу необходимо в окне Microsoft Azure Powershell ввести следующую команду:
Создание виртуальных машин
Быстрое создание ВМ с помощью мастера на портале Microsoft Azure
Для выполнения действий на портале, необходимо в браузере открыть ссылку https://manage.windowsazure.com/и выполнить вход. Вызвать мастер создания виртуальной машины можно двумя способами: перейти в раздел «Виртуальные машины» и нажать ссылку «Создание виртуальной машины», либо нажать в нижней строке инструментов кнопку «Создать»:
В открывшемся мастере необходимо указать:
- Уникальное DNS-имя, по которому виртуальная машина будет доступна после создания;
- Образ виртуальной машины: можно выбрать из списка популярные образы, либо нажав кнопку «ИЗ ГАЛЕРЕИ» вызвать просмотр всех образов, содержащихся в галерее;
- Размер ресурсов ВМ – количество ядер CPU и оперативной памяти;
- Пароль, который будет назначен создаваемому пользователю с административными привилегиями. По умолчанию создается пользователь «azureuser»;
- Регион, в датацентре которого будет размещена ВМ;
- Подписку, с которой будут списываться средства за потребленные ресурсы.
После заполнения всех полей, необходимо нажать кнопку «СОЗДАНИЕ ВИРТУАЛЬНОЙ МАШИНЫ»:
Cоздание ВМ из галереи с помощью мастера на портале Microsoft Azure
Если необходимо изменить дополнительные параметры, такие как: версия образа, имя ВМ, имя административного пользователя, добавить ключ SSH – необходимо создавать ВМ из галереи. Для вызова мастера нажмите кнопку «ИЗ ГАЛЕРЕИ».
На первой странице мастера необходимо выбрать требуемый образ ВМ:
На второй странице мастера необходимо выбрать:
- Дату выпуска версии – в зависимости от этого будет использоваться соответствующий образ ВМ (разницу между выпусками можно посмотреть на сайте вендора ОС).
- Имя виртуальной машины (при создании ВМ при помощи предыдущего мастера в качестве имени ВМ будет использоваться DNS-имя).
- Размер виртуальной машины – количество ядер CPU и памяти.
- Имя пользователя – данный пользователь будет создан в процессе развертывания ВМ и обладать административными привилегиями. Имеются два зарезервированных имени: root и admin.
- Необходимо выбрать способы проверки подлинности при подключении к ВМ через SSH: ключ SSH и/или пароль. Если при подключении к ВМ будет использоваться ключ SSH, необходимо установить флаг «ЗАГРУЗИТЬ СОВМЕСТИМЫЙ КЛЮЧ SSH ДЛЯ ПРОВЕРКИ ПОДЛИННОСТИ» и выбрать созданный ранее сертификат (C:\OpenSSL\Cert.cer). Если необходимо административной учетной записи назначить пароль, необходимо установить флаг «Предоставьте пароль» и ввести пароль с подтверждением. Для обеспечения дополнительной безопасности рекомендуется использовать оба способа проверки подлинности – ключ SSH и пароль.
Пример заполнения второй страницы мастера создания ВМ:
На третьей странице мастера необходимо указать следующее:
- Облачную службу – облачные службы содержат одну или несколько виртуальных машин. При необходимости балансировки нагрузки между однотипными ВМ (например, веб-серверов), ВМ помещаются в одну облачную службу 1. Возможно указать созданную ранее облачную службу, либо оставить выбор по умолчанию («Создать облачную службу») – в этом случае будет создана новая облачная служба.
- DNS-имя облачной службы (только в случае создания облачной службы), по которому виртуальная(ые) машина(ы) будет доступна после создания.
- Подписку, с которой будут списываться средства за потребленные ресурсы (только в случае создания облачной службы. При выборе существующей службы подписка будет определена автоматически).
- Регион, в датацентре которого будет размещена ВМ (только в случае создания облачной службы. При выборе существующей службы регион будет определен автоматически).
- Учетную запись хранения – учетная запись, которая предоставляет доступ к службам хранилища Azure. Можно использовать уже существующую учетную запись, либо использовать автоматически созданную учетную запись 2.
- Группу доступности – группы доступности позволяют защищать виртуальные машины от сбоев оборудования, на котором они размещены, путем создания реплик ВМ в других датацентрах Azure 3.
- Конечные точки – это порты, подключение к которым будет возможно из Интернета. По умолчанию имеется одна конечная точка – SSH (порт 22) 4.
Пример заполнения третьей страницы мастера создания ВМ:
На четвертой странице мастера можно указать, требуется ли устанавливать агента ВМ и необходимые расширения конфигурации 5(если доступны для образа ВМ). Агент ВМ необходим для установки и управления расширениями. При развертывании из образов галереи агент ВМ нельзя отключить. Если для развертывания используется собственный образ, в него заранее должна быть установлена поддерживаемая версия агента ВМ 6.
После нажатия на четвертой странице мастера кнопки «Завершить»начнется развертывание ВМ:
По колонке «СОСТОЯНИЕ»(при завершении развертывания состояние будет «Выполняется») определяется готовность ВМ к использованию:
Создание ВМ с помощью Powershell
Порядок создания виртуальной машины Linux с использованием Powershell:
- Запустить консоль Microsoft Azure Powershell.
- Выбрать подписку и учетную запись хранения, которые будут использоваться при развертывании ВМ. Для этого в окне Microsoft Azure Powershell ввести следующие команды: $subName = "<Имя подписки>"Select-AzureSubscription -SubscriptionName $subName -CurrentSet-AzureSubscription -SubscriptionName $subName -CurrentStorageAccount "<Имя учетной записи хранения>"
Получить имена подписок можно выполнив следующую команду:
Get-AzureSubscription | Select SubscriptionNameПолучить имена учетных записей хранения можно выполнив следующую команду:
Get-AzureStorageAccount | select Label - Выбрать необходимый образ ВМ. Для этого в окне Microsoft Azure Powershell выполнить следующие команды:
Получаем список семейств образов Linux:
Get-AzureVMImage | ?{$_.OS -eq "Linux"} | select ImageFamily -UniqueПолучаем имя последнего опубликованного образа в нужном семействе образов (я использовал семейство образов "Ubuntu Server 15.04"):
$image = Get-AzureVMImage | where { $_.ImageFamily -eq "Ubuntu Server 15.04" } | sort PublishedDate -Descending | select -ExpandProperty ImageName -First 1 - Создать конфигурацию ВМ для развертывания. Для этого в окне Microsoft Azure Powershell выполнить следующую команду: $vmConfig = New-AzureVMConfig -Name "<Имя виртуальной машины>" -InstanceSize "<Размер виртуальной машины: Small или Medium или Large или ExtraLarge>" -ImageName $image
С полным списком размеров ВМ и их характеристиками (количество ядер CPU и доступной оперативной памяти) можно ознакомиться по ссылке https://msdn.microsoft.com/ru-ru/library/azure/dn197896.aspx.
- Указать в конфигурации имя и пароль административного пользователя. Указать в конфигурации открытый ключ загруженного ранее для использования в облачной службе сертификата (см. «Создание облачной службы и загрузка сертификатов»). Для этого в окне Microsoft Azure Powershell выполнить следующие команды:
Получение учетных данных для создаваемого административного пользователя:
$cred = Get-CredentialПолучение списка отпечатков сертификатов:
Get-AzureCertificate -ServiceName "<Имя облачной службы>" | Select ThumbprintПолучение необходимого открытого ключа:
$pubKey = New-AzureSSHKey -PublicKey -Fingerprint "<Отпечаток сертификата полученный после выполнения предыдущей команды>" -Path "/home/usr/.ssh/authorized_keys"Установка параметров конфигурации ВМ:
$vmConfig | Add-AzureProvisioningConfig -Linux -LinuxUser $cred.GetNetworkCredential().Username -Password $cred.GetNetworkCredential().Password -SSHPublicKeys $pubKey - Запустить процесс создания ВМ». Для этого в окне Microsoft Azure Powershell выполнить следующие команды: $vmConfig | New-AzureVM -ServiceName "<Имя облачной службы>"
- Проверить состояние развертывания можно выполнив в окне Microsoft Azure Powershell следующую команду: Get-AzureVM -ServiceName "<Имя облачной службы>" -Name "<Имя создаваемой ВМ>" | select StatusПри завершении развертывания будет состояние будет ReadyRole.
При создании нескольких виртуальных машин Linux в рамках одной облачной службы, только первая ВМ будет иметь порт SSH равным 22. Остальным ВМ будет назначен порт >50000. Посмотреть текущий порт SSH у ВМ можно выполнив в окне Microsoft Azure Powershell следующую команду:
Или в панели мониторинга:
Подключение к созданным ВМ с помощью PuTTY
Для подключения к созданным ВМ с помощью PuTTY (бесплатный клиент SSH) необходимо выполнить следующие действия:
- Скачать и установить дистрибутив Putty с http://putty.org.ru/download.html(«Инсталлятор: putty-intsaller.exe»). По умолчанию в меню «Пуск»будет создана папка «Putty»:
- Запустить утилиту PuTTYgen, нажать кнопку «Load». Выбрать созданный ранее файл закрытого ключа (C:\OpenSSL\PrivateKey.rsa):
- Заполнить необходимые поля:
«Key comment» – комментарий, описывающий закрытый ключ.
«Key passphrase» и «Confirm passphrase» - пароль и подтверждение пароля.
Пароль будет запрашиваться при попытке использования данного ключа. Рекомендуется защищать закрытые ключи паролем - Нажать кнопку «Save private key»и сохранить закрытый ключ для дальнейшего использования (я сохранил ключ как C:\OpenSSL\PrivateKey.ppk).
- Запустить Putty. В окне «Category» перейти на узел «Connection->SSH->Auth». Нажать кнопку «Browse» и выбрать файл закрытого ключа, созданный ранее с помощью PuTTYgen:
- В окне «Category»перейти на узел «Session». «Connection type» выбрать «SSH». В поле «Host Name (or IP address)»ввести DNS-имя созданной ранее ВМ. В поле «Saved Sessions»ввести понятное имя сессии и нажать «Save». Это позволит в будущем загружать сохраненную сессию с уже предопределенными параметрами (для этого в окне «Saved sessions»выбрать сохраненную ранее сессию и нажать кнопку «Load»):
- Для подключения к ВМ нажать кнопку «Open». При первом подключении будет выдано предупреждение о том, что ключ не сохранен в реестре. Нажать «Да» для сохранения ключа:
- В появившемся приглашении «login as» необходимо указать административного пользователя, созданного при развертывании ВМ (по умолчанию «azureuser»). Если в процессе создания закрытого ключа с помощью PuTTYgen использовался пароль, он будет запрошен:
Поздравляю! Вы успешно подключились к созданной в Azure виртуальной машине Linux: