Share via


Microsoft Dev Box 用に Azure Compute Gallery を構成する

この記事では、Azure コンピューティング ギャラリーを構成して、Microsoft Dev Box のデベロッパー センターにアタッチする方法について説明します。 Azure Compute Gallery を使うと、開発者に開発ボックス用のカスタマイズされたイメージを提供できます。

Azure Compute Gallery は、イメージを管理および共有するためのサービスです。 ギャラリーは、Azure サブスクリプションに格納されるリポジトリで、イメージ リソースに関連する構造と体系を構築するのに役立ちます。 Dev Box では、イメージ ギャラリーを提供するために、GitHub、Azure Repos、Bitbucket リポジトリがサポートされています。

コンピューティング ギャラリーを Microsoft Dev Box のデベロッパー センターにアタッチした後は、コンピューティング ギャラリーに格納されているイメージに基づいて開発ボックスの定義を作成できます。

ギャラリーを使用した場合、次のような利点があります。

  • イメージを 1 か所に保持し、デベロッパー センター、プロジェクト、プール間で使用できます。
  • 開発チームは、開発ボックスの作成時に、最新バージョンのイメージ定義を使用して常に最新のイメージを確実に受け取ることができます。
  • 開発チームは、新しいバージョンが検証されるまで、サポート対象となるイメージ バージョンを標準化できます。

Azure Compute Gallery の詳細とギャラリーの作成方法については、以下を参照してください。

前提条件

Note

Microsoft Dev Box では、コミュニティ ギャラリーはサポートされていません。

開発ボックスの定義を構成するために使用されるギャラリーには、少なくとも 1 つのイメージ定義と 1 つのイメージ バージョンが必要です。

仮想マシン (VM) イメージを作成するときは、Microsoft Dev Box と互換性があるイメージを Azure Marketplace で選びます。 以下は互換性のあるイメージの例です。

イメージ バージョンの要件

このイメージ バージョンは以下の要件を満たしている必要があります。

  • 第 2 世代

  • Hyper-V v2

  • Windows OS

    • Windows 10 Enterprise バージョン 20H2 以降
    • Windows 11 Enterprise バージョン 21H2 以降
  • 一般化された VM 画像

  • 単一セッション VM イメージ (複数セッション VM イメージはサポートされていません。)

  • 復旧パーティションはありません。

  • 既定の 64 GB OS ディスク サイズ。

    • OS ディスク のサイズは自動的に、Windows 365 ライセンスの SKU の説明で指定されているサイズに調整されます。
  • イメージ定義では、セキュリティの種類としてトラステッド起動が有効になっている必要があります。 セキュリティの種類は、イメージ定義を作成するときに構成します。

    Windows 365 イメージ要件設定のスクリーンショット。

Note

  • Microsoft Dev Box のイメージの要件は、Windows 365 のイメージの要件を上回っており、開発ボックスの作成時間とパフォーマンスを最適化するための設定が含まれます。
  • Windows 365 の要件を満たしていないイメージは、作成可能なイメージの一覧には表示されません。

プロビジョニングと起動の時間を短縮する

イメージにキャプチャする一般化された VM を作成すると、次の問題がプロビジョニングと起動時間に影響する可能性があります。

  1. 3 つの sysprep オプション /generalize /oobe /mode:vm を使用してイメージを作成します。

    • これらのオプションを使用すると、最初の起動時にドライバーの検索とインストールに時間がかからなくなります。 詳細については、「Sysprep のコマンド ライン オプション」を参照してください。1。 OS ディスクで読み取り/書き込みキャッシュを有効にします。
    • キャッシュが有効であることを確認するには、Azure portal を開き、[イメージ] に移動します。 JSON ビューを選択し、properties.storageProfile.osDisk.caching の値が ReadWrite であることを確認します。
  2. ベース イメージで入れ子になった仮想化を有効にします。

    • UI で、[Windows の機能を有効化または無効化する] を開き、[Virtual Machine Platform] (仮想マシン プラットフォーム) を選択します。
    • あるいは PowerShell コマンド Enable-WindowsOptionalFeature -FeatureName VirtualMachinePlatform -Online を実行します。
  3. DISM.exe /Online /Set-ReservedStorageState /State:Disabled コマンドを使用して、イメージでの、予約済みストレージの状態の機能を無効にします。

  4. イメージの作成時に defragchkdsk を実行し、スケジュールされたタスクの chkdiskdefrag を無効にします。

Azure Compute Gallery イメージを使用して開発ボックス定義を作成するときには、Windows 365 サービスによってイメージが検証され、開発ボックス用にプロビジョニングする要件を満たしていることが確認されます。 イメージは、Microsoft Dev Box によって、アタッチされたネットワーク接続で指定されているリージョンにレプリケートされるので、開発ボックスの作成に必要なリージョン内に存在するようになります。

サービスでこれらのアクションを実行できるようにするには、以下のようにギャラリーへのアクセス許可を付与する必要があります。

ユーザー割り当て ID をデベロッパー センターに追加する

  1. 手順に従ってユーザー割り当てマネージド ID を作成します

  2. Azure portal にサインインします。

  3. 検索ボックスに「dev box」と入力します。 結果一覧から、[デベロッパー センター] を選択します。

  4. デベロッパー センターを開きます。 左側のメニューで [ID] を選択します。

  5. [ユーザー割り当て済み] タブで、[+ 追加] を選択します。

  6. [ユーザー割り当てマネージド ID の追加] ペインで、手順 1 で作成したユーザー割り当てマネージド ID を選択し、[追加] を選択します。

    ユーザー割り当てマネージド ID を追加するためのウィンドウのスクリーンショット。

ロールの割り当て

Microsoft Dev Box の動作は、ギャラリーのアタッチ方法によって異なります。

  • Azure portal を使用してギャラリーをデベロッパー センターにアタッチすると、ギャラリーのアタッチ後、Dev Box サービスによって、必要なロールの割り当てが自動的に作成されます。
  • Azure CLI を使用してギャラリーをデベロッパー センターにアタッチすると、ギャラリーのアタッチ前に手動で、Windows 365 サービス プリンシパルとデベロッパー センターのマネージド ID ロールの割り当てを作成する必要があります。

以下の手順を使用して、手動で各ロールを割り当てます。

Windows 365 サービス プリンシパル

  1. Azure portal にサインインします。

  2. 検索ボックスに「Azure Compute Gallery」と入力します。 結果の一覧で、デベロッパー センターにアタッチするギャラリーを選択します。

  3. 左側のメニューで、[アクセス制御 (IAM)] を選択します。

  4. [追加]>[ロール割り当ての追加] の順に選択します。

  5. 次のロールを割り当てます。 詳細な手順については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。

    設定
    Role [閲覧者] を選択します。
    アクセスの割り当て先 ユーザー、グループ、またはサービス プリンシパル を選択します。
    メンバー Windows 365 を検索して選択します。

デベロッパー センター用のマネージド ID

  1. Azure portal で、デベロッパー センターにアタッチするギャラリーを開きます。 Azure Compute Gallery を検索してギャラリーを見つけることもできます。

  2. 左側のメニューで、[アクセス制御 (IAM)] を選択します。

  3. [追加]>[ロール割り当ての追加] の順に選択します。

  4. 次のロールを割り当てます。 詳細な手順については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。

    設定
    Role [共同作成者] を選択します。
    アクセスの割り当て先 [マネージド ID] を選択します。
    メンバー デベロッパー センターにユーザー割り当て ID を追加したときに作成したユーザー割り当てマネージド ID を検索して選択します。

複数のデベロッパー センターとコンピューティング ギャラリーで同じマネージド ID を使用できます。 マネージド ID を追加したすべてのデベロッパー センターに、所有者ロールの割り当てが追加されているギャラリー内のイメージに対する必要なアクセス許可が付与されます。

開発ボックスの定義でコンピューティング ギャラリーのイメージを使うには、最初に、ギャラリーをデベロッパー センターにアタッチすることで関連付ける必要があります。

  1. Azure portal にサインインします。

  2. 検索ボックスに「dev box」と入力します。 結果一覧から、[デベロッパー センター] を選択します。

  3. ギャラリーのアタッチ先となるデベロッパー センターを選択します。

    既存のデベロッパー センターのリストのスクリーンショット。

  4. 左側のメニューで、[Azure コンピューティング ギャラリー] を選択し、このデベロッパー センターにアタッチされているギャラリーを一覧表示します。

    コンピューティング ギャラリーのページのスクリーンショット。ギャラリーが一覧表示されていません。

  5. [+ 追加] を選択して、アタッチするギャラリーを選択します。

  6. [Azure コンピューティング ギャラリーの追加] で、目的のギャラリーを選択します。 同じ名前を持つ複数のギャラリーにアクセスできる場合は、サブスクリプション名がかっこで囲まれて表示されます。

    ギャラリーを選択するための領域のスクリーンショット。

  7. デベロッパー センターで名前が競合している場合は、このギャラリーに使用する一意の名前を指定する必要があります。

  8. [追加] を選択します。

  9. 目的のギャラリーが [Azure コンピューティング ギャラリー] ページに表示されようになったことを確認します。

    コンピューティング ギャラリーのページのスクリーンショット。サンプル ギャラリーが一覧表示されています。

ギャラリーを正常に追加した後、ギャラリー内のイメージは、開発ボックス定義の作成時や更新時に選択できるようになります。

ギャラリーは、デベロッパー センターからデタッチできます。これにより、それらのイメージは開発ボックス定義の作成のために使用できなくなります。

Note

開発ボックス定義でアクティブに使用中のギャラリーは削除できません。 そのようなギャラリーを削除する前に、関連付けられている開発ボックス定義を削除するか、異なるギャラリーのイメージを使用するように定義を更新する必要があります。

  1. Azure portal にサインインします。

  2. 検索ボックスに「dev box」と入力します。 結果一覧から、[デベロッパー センター] を選択します。

  3. ギャラリーを削除するデベロッパー センターを選択します。

  4. 左側のメニューで、[Azure コンピューティング ギャラリー] を選択し、このデベロッパー センターにアタッチされているギャラリーを一覧表示します。

  5. 削除するギャラリーを選択したら、[削除] を選択します。

    コンピューティング ギャラリーのページ、選択されたギャラリー、[削除] ボタンのスクリーンショット。

  6. 確認ダイアログで [続行] を選択します。

ギャラリーはデベロッパー センターからデタッチされます。 ギャラリーとそのイメージは削除されず、必要に応じて再アタッチできます。