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 ファイルを作成するツールはいくつかあります。 たとえば Hyper-V などの仮想化ソリューションを使用して .vhd ファイルを作成し、オペレーティング システムをインストールすることができます。 Hyper-V をインストールして使用する手順については、「 Hyper-V をインストールして仮想マシンを作成する」を参照してください。

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 上の仮想マシンで無効になっています。 ユーザーは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
    

注意

特定の仮想マシンを移行する際に、一般化されたイメージを作成しない場合は、プロビジョニング解除手順はスキップしてください。

これで 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 をお読みください。