• Главная
  • Публикации
  • Использование собственного образа операционной системы FreeBSD на платформе Azure

Использование собственного образа операционной системы FreeBSD на платформе Azure

Есть 2 способа запустить FreeBSD в Azure. Первый – взять готовый образ из хранилища шаблонов виртуальных машин Azure VMdepot, второй - подготовить собственный образ. Если по каким-либо причинам готовый образ вас не устраивает, и вы хотите подготовить собственный, тогда эта статья вам поможет.

Создание образа системы FreeBSD

Сначала мы рассмотрим вопрос подготовки образа системы FreeBSD x86_64 10 для платформы Microsoft Azure. В самом начале мы должны произвести локальную установку операционной системы FreeBSD с использованием системы аппаратной визуализации Hyper-V (если возможно, с использованием Windows Server 2012 R2). Для того чтобы облегчить выполнение этой задачи, энтузиасты системы FreeBSD создали образы формата VHD, содержащие предустановленную систему FreeBSD.

pic1

Настройте размер файла системы FreeBSD в формате VHD (при необходимости).

Если вы решили устанавливать систему FreeBSD на виртуальную машину Hyper-V "с нуля", с использованием установочного ISO-образа, тогда вы можете пропустить эту операцию.

Однако при использовании предварительно сгенерированного виртуального жесткого диска с сайта ftp.freebsd.org вам, возможно, придется изменить размер вашего виртуального жесткого диска, чтобы обеспечить совместимость с платформой Azure. При создании виртуального жесткого диска на платформе Azure размер этого диска должен представлять собой целое число в мегабайтах (МБ), иначе при попытке создания нового образа системы FreeBSD вы получите от сервиса Azure следующее сообщение об ошибке:

“The VHD http://<tucuenta>.blob.core.windows.net/vhds/FreeBSD-10.0-RELEASE-amd64-20140116-r260789.vhd has an unsupported virtual size of 21475270656 bytes. The size must be a whole number (in MBs).”

В загруженном нами образе системы FreeBSD 21475270656 байт фактически равны 20480,4140625 МБ. Итак, для того чтобы исправить это несоответствие, просто измените размер вашего виртуального жесткого диска таким образом, чтобы он не превышал 21000 МБ. Если вам нравится работать с консолями, вы можете выбрать для этих целей консоль управления Powershell или Hyper-V. В сервере Hyper-V открываете систему команд PowerShell и запускаете команду Resize-VHD для изменения размера виртуального жесткого диска (VHD):

pic2

Вы также можете изменить размер вашего диска с использованием консоли управления Hyper-V. В меню настроек вашей виртуальной машины (в данном случае, FreeBSD) щелкните пункт "virtual IDE drive" ("виртуальный IDE-диск"), затем щелкните кнопку "Edit" ("Редактирование"), чтобы открыть помощник-редактор параметров VHD:

pic3

Затем запустите систему FreeBSD и войдите в систему в качестве суперпользователя. Пользователи системы не сгенерировали ранее пароля суперпользователя на жестком диске, поэтому вход будет осуществляться без пароля. После входа в систему запустите команду gpart и выполните поиск разделов диска. Вы можете видеть, что диску da0 присвоен ярлык CORRUPT, т.к. мы ранее изменили размер нашего виртуального жесткого диска:

pic4

Не беспокойтесь. Чтобы исправить диск da0, просто запустите следующую команду:

pic5

В качестве варианта, вы можете попробовать изменить размер корневого раздела FreeBSD, что позволит вам вернуть утраченное свободное место.

Для того чтобы изменить размер корневой файловой системы, придется повозиться; возможно, вам придется загрузиться с использованием загрузочного диска системы FreeBSD. Но если вы действительно хотите вернуть себе утраченное свободное место на диске, расширить корневую файловую систему можно следующим образом:

pic6

Отлично! Наш виртуальный жесткий диск готов к использованию, и мы также теперь готовы к подготовке нашей системы FreeBSD к ее использованию на платформе Azure.

Подготовка операционной системы FreeBSD к использованию на платформе Azure

Теперь все будет просто (не сомневайтесь!) Нам нужно просто установить несколько дополнительных компонентов и настроить несколько параметров, и система FreeBSD 10 будет готова к работе в Azure.

  • Разрешите использование сетей системой FreeBSD

Для настройки интерфейса hn0 вы можете использовать команду /etc/rc.d/ netif (обеспечивает запуск и останов функциональности Net):

pic7

  • Разрешите использование SSH-аутентификации

Для этого вам нужно сначала запустить управляющую программу SSH с использованием пути /etc/rc.conf и создать новые хост-ключи:

pic8

Заметьте, что если вы захотите использовать эти данные SSH-аутентификации для другого пользователя-гостя системы FreeBSD, вы можете продолжать использовать эту конфигурацию, но вам придется создать нового пользователя без привилегий (рекомендуется) или задать пароль суперпользователя и задать параметр "PermitRootLogin yes" в пути / etc / ssh / sshd_config (не рекомендуется).

  • Установка языка Python 2.7 и соответствующих модулей:

pic9

Вам может также понадобиться создать символьную ссылку на новые двоичные файлы python 2.7, находящиеся по адресу / usr / bin / python. Это можно сделать следующим образом:

pic10

  • Установка утилиты sudo

Это необходимо сделать потому, что, как правило, учетная запись суперпользователя деактивируется сервисом Azure, и для запуска команд с высоким классом привилегий мы будем использовать утилиту sudo от имени непривилегированного пользователя:

pic11

  • Установка приложения Azure Linux Agent

Последнюю версию приложения Azure Linux Agent всегда можно найти на сайте Github: https://github.com/Azure/WALinuxAgent/releases. Для использования в системе FreeBSD рекомендуется версия 2.0.5 или более новая. Однако, как правило, большой стабильностью работы отличается ветвь программы 2.0, поэтому в данный момент мы просто перейдем прямо к этой ветви. Это позволит нам воспользоваться наиболее эффективным агентом с поддержкой системы FreeBSD:

pic12 pic13 pic14

Агент Azure установлен и работает!

  • (Опционально) Генерализация системы перед загрузкой виртуального диска (VHD) на платформе Azure

Данная функция позволит обобщить параметры образа. В результате должны быть исключены SSH-сертификаты, деактивирован доступ суперпользователя и удален соответствующий пароль, удалены кэшированные элементы протокола DHCP и т.д. Это – хорошая практика; однако если вы не планируете обеспечить широкий публичный доступ к данному виртуальному жесткому диску, вы можете пропустить данный шаг:

pic15

Примечание : После запуска этой команды может появиться предупреждающее сообщение, потому что файл OVF-env.xml не существует. Вы можете оставить это сообщение "как есть", иными словами, просто проигнорировать его.

  • Выключение виртуальной машины FreeBSD

Все готово! И проще не бывает, не правда ли?

  • Выгрузка виртуального жесткого диска FreeBSD на платформу Azure

Выгрузить виртуальный жесткий диск на платформу Azure можно несколькими способами. В этой статье мы воспользуемся инструментами Azure PowerShell для подключения виртуального жесткого диска к нашей учетной записи хранения:

Прежде всего, убедитесь в том, что виртуальная машина FreeBSD на вашем сервере Hyper-V выключена.

Затем для загрузки виртуального жесткого диска воспользуйтесь командой Add-AzureVhd:

pic16 pic17

После того как загрузка будет завершена, вы можете воспользоваться виртуальным жестким диском для создания образа и предусмотреть при этом возможность использования любого количества виртуальных машин FreeBSD в среде Azure:

pic18

Заметьте, что здесь вам придется использовать операционную систему Linux. К сожалению, инструменты Powershell еще не поддерживают работу с параметром "-SO FreeBSD"

Создание виртуальной машины FreeBSD на платформе Azure

Наконец, мы готовы к созданию наших виртуальных машин FreeBSD на платформе Azure. Вы можете использовать инструменты PowerShell или же выполнять все операции на портале:

Выполните вход в Портал управления Azure ("Azure Management Portal") (https://manage.windowsazure.com

pic19

Щелкните пункт меню "My Images" ("Мои образы") и выберите ваш образ

pic20

Выберите ваш образ операционной системы FreeBSD и выполняйте появляющиеся на экране указания для задания пароля / имени хоста, параметров SSH и т.д. Как только вы завершите этот процесс, вы окажетесь счастливым владельцем новенькой виртуальной машины FreeBSD 10, работающей на платформе Azure.