Создание и отправка образа диска OpenBSD в Azure

Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы

В этой статье описывается, как создать и передать виртуальный жесткий диск, содержащий операционную систему OpenBSD. После отправки его можно использовать в качестве собственного образа для создания виртуальной машины в Azure с помощью Azure CLI.

Необходимые компоненты

В данной статье предполагается, что у вас есть следующие элементы:

Подготовка образа OpenBSD для Azure

На виртуальной машине, где вы установили ОС OpenBSD 6.1 с поддержкой Hyper-V, выполните следующие действия:

  1. Если DHCP не включен во время установки, включите службу:

    doas echo dhcp > /etc/hostname.hvn0
    
  2. Настройте последовательную консоль:

    doas echo "stty com0 115200" >> /etc/boot.conf
    doas echo "set tty com0" >> /etc/boot.conf
    
  3. Настройка установки пакета:

    doas echo "https://ftp.openbsd.org/pub/OpenBSD" > /etc/installurl
    
  4. По умолчанию root пользователь отключен на виртуальных машинах в Azure. Пользователи могут выполнять команды с повышенными привилегиями, используя команду doas на виртуальной машине OpenBSD. Doas включен по умолчанию.

  5. Установите и настройте необходимые компоненты для агента Azure:

    doas pkg_add py-setuptools openssl git
    doas ln -sf /usr/local/bin/python2.7 /usr/local/bin/python
    doas ln -sf /usr/local/bin/python2.7-2to3 /usr/local/bin/2to3
    doas ln -sf /usr/local/bin/python2.7-config /usr/local/bin/python-config
    doas ln -sf /usr/local/bin/pydoc2.7  /usr/local/bin/pydoc
    
  6. На сайте GitHub можно найти последний выпуск агента Azure. Установите агент:

    doas git clone https://github.com/Azure/WALinuxAgent
    doas cd WALinuxAgent
    doas python setup.py install
    doas waagent -register-service
    

    Внимание

    После установки агента Azure рекомендуется убедиться, что он работает:

    doas ps auxw | grep waagent
    root     79309  0.0  1.5  9184 15356 p1  S      4:11PM    0:00.46 python /usr/local/sbin/waagent -daemon (python2.7)
    doas cat /var/log/waagent.log
    
  7. Отмените очистку системы и сделайте ее подходящей для отмены подготовки. Приведенная ниже команда также удаляет последнюю подготовленную учетную запись пользователя и связанные с ней данные.

    doas waagent -deprovision+user -force
    

Примечание.

Если вы переносите определенную виртуальную машину и не хотите создавать обобщенный образ, пропустите этап отмены подготовки.

Теперь вы можете завершить работу виртуальной машины.

Подготовка VHD

Формат VHDX не поддерживается в Azure, только фиксированный виртуальный жесткий диск. Диск можно преобразовать в фиксированный формат VHD с помощью диспетчера Hyper-V или командлета PowerShell convert-vhd . Приведем пример:

Convert-VHD OpenBSD61.vhdx OpenBSD61.vhd -VHDType Fixed

Создание и передача ресурсов хранилища

Сначала создайте группу ресурсов с помощью команды az group create. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus:

az group create --name myResourceGroup --location eastus

Создайте учетную запись хранения с помощью команды az storage account create, чтобы передать VHD. Имя учетной записи хранения должно быть уникальным, поэтому введите собственное имя. В следующем примере создается учетная запись хранения с именем mystorageaccount:

az storage account create --resource-group myResourceGroup \
    --name mystorageaccount \
    --location eastus \
    --sku Premium_LRS

Чтобы управлять доступом к учетной записи хранения, получите ключ хранилища с помощью списка ключей учетной записи хранения az:

STORAGE_KEY=$(az storage account keys list \
    --resource-group myResourceGroup \
    --account-name mystorageaccount \
    --query "[?keyName=='key1']  | [0].value" -o tsv)

Для логического разделения виртуальных жестких дисков создайте контейнер в учетной записи хранения с помощью команды az storage container create:

az storage container create \
    --name vhds \
    --account-name mystorageaccount \
    --account-key ${STORAGE_KEY}

Наконец, отправьте VHD с помощью az storage blob upload:

az storage blob upload \
    --container-name vhds \
    --file ./OpenBSD61.vhd \
    --name OpenBSD61.vhd \
    --account-name mystorageaccount \
    --account-key ${STORAGE_KEY}

Создание виртуальной машины на основе виртуального жесткого диска

Можно создать виртуальную машину с помощью примера скрипта или напрямую с помощью команды az vm create. Чтобы указать отправленный виртуальный жесткий диск OpenBSD, используйте --image параметр:

az vm create \
    --resource-group myResourceGroup \
    --name myOpenBSD61 \
    --image "https://mystorageaccount.blob.core.windows.net/vhds/OpenBSD61.vhd" \
    --os-type linux \
    --admin-username azureuser \
    --ssh-key-value ~/.ssh/id_rsa.pub

Получите IP-адрес для виртуальной машины OpenBSD с помощью az vm list-ip-addresss:

az vm list-ip-addresses --resource-group myResourceGroup --name myOpenBSD61

Теперь вы можете подключаться к виртуальной машине OpenBSD по протоколу SSH в обычном режиме:

ssh azureuser@<ip address>
  • Дополнительные сведения о поддержке Hyper-V в OpenBSD 6.1 см . в статье OpenBSD 6.1.
  • Чтобы создать виртуальную машину с управляемого диска, считывайте az disk.