Создание и передача образа жесткого диска 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 включен по умолчанию. Дополнительные сведения см. на веб-сайте doas.conf.

  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. Последний выпуск агента Azure доступен на сайте GitHub. Установите агент следующим образом:

    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. Преобразовать диск в формат фиксированного 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 account key list следующим образом:

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}

Создание виртуальной машины из VHD

Можно создать виртуальную машину с помощью примера скрипта или напрямую с помощью команды az vm create. Чтобы указать переданный VHD 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-addresses следующим образом:

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

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

ssh azureuser@<ip address>

Дальнейшие действия

Если вы хотите получить дополнительные сведения о поддержке Hyper-V в OpenBSD 6.1, посетите веб-сайты OpenBSD 6.1 и hyperv.4.

Если требуется создать виртуальную машину из управляемого диска см. статью Управляемые диски - az disk.