OpenBSD ディスク イメージを作成して Azure にアップロードする

適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット

この記事では、OpenBSD オペレーティング システムを格納した仮想ハード ディスク (VHD) を作成してアップロードする方法について説明します。 VHD をアップロードしたら、それを独自のイメージとして使用し、Azure CLI を使用して Azure の仮想マシン (VM) を作成できます。

前提条件

この記事では、次の項目があることを前提としています。

  • Azure サブスクリプション: アカウントをお持ちでない場合は、数分でアカウントを作成できます。 MSDN サブスクリプションをお持ちの場合は、「Visual Studio サブスクライバー向けの月単位の Azure クレジット」をご覧ください。 それ以外の場合は、 無料試用版のアカウントの作成方法に関するページをご覧ください。
  • Azure CLI: Azure CLI の最新版がインストールされ、az login を使用して Azure アカウントにログインしていることを確認します。
  • .vhd ファイルにインストールされている OpenBSD オペレーティング システム: サポートされている OpenBSD オペレーティング システム (6.6 バージョン AMD64) が VHD にインストールされている必要があります。 .vhd ファイルを作成するツールはいくつかあります。 たとえば Hyper-V などの仮想化ソリューションを使用して .vhd ファイルを作成し、オペレーティング システムをインストールすることができます。 Hyper-V をインストールして使用する手順については、Hyper-V のインストールと VM の作成に関するページを参照してください。

Azure 用の OpenBSD イメージを準備する

Hyper-V のサポートが追加された OpenBSD オペレーティング システム 6.1 をインストールしたVMで、次の手順を実施します。

  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 上の VM で無効になっています。 ユーザーはOpenBSD VM で doas コマンドを使用して、昇格された特権でコマンドを実行できます。 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. 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
    

Note

特定の VM を移行する際に、汎用化イメージを作成しない場合は、プロビジョニング解除手順をスキップします。

これで VM をシャットダウンできます。

VHD の準備

VHDX 形式は Azure ではサポートされていません。サポートされるのは固定 VHD のみです。 Hyper-V マネージャーまたは PowerShell の convert-vhd コマンドレットを使用すると、ディスクを固定の VHD 形式に変換できます。 次に例を示します。

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

ストレージ リソースの作成とアップロード

最初に、az group create を使用して、リソース グループを作成します。 次の例では、myResourceGroup という名前のリソース グループを eastus の場所に作成します。

az group create --name myResourceGroup --location eastus

VHS をアップロードするには、ストレージ アカウントを、az storage account create を使用して作成します。 ストレージ アカウント名は一意である必要があるため、独自の名前を入力してください。 次の例では、mystorageaccount という名前のストレージ アカウントを作成します。

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

ストレージ アカウントへのアクセスを制御するには、az storage account keys list を使用してストレージ キーを取得します。

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

アップロードする VHD を論理的に分離するには、az storage container create を使用してストレージ アカウント内のコンテナーを作成します。

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

最後に、az storage blob upload を使用して VHD をアップロードします。

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

VHD から VM を作成する

サンプル スクリプトを使用して、または直接 az vm create を使用して、VM を作成できます。 アップロードした OpenBSD VHD を指定するには、--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

az vm list-ip-addresses を使用して OpenBSD VM の IP アドレスを取得します。

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

これで正常に OpenBSD VM に SSH できます。

ssh azureuser@<ip address>
  • OpenBSD 6.1 での Hyper-V サポートの詳細については、「OpenBSD 6.1」を参照してください。
  • マネージド ディスクから VM を作成するには、「az disk」を参照してください。