次の方法で共有


Dev Box チームのカスタマイズ用のイメージ定義ファイルを記述する

Microsoft Dev Box のカスタマイズ機能は、クラウドベースの開発環境のセットアップを効率化するのに役立ちます。 開発者が新しいプロジェクトや新しいチームを使い始めるのは、多くの場合、複雑で時間がかかります。 カスタマイズを使用すると、アプリケーション、ツール、リポジトリ、コード ライブラリ、パッケージ、ビルド スクリプトを使用して、すぐにコードを記述できるワークステーションを構成できます。 この記事では、Visual Studio Code を使用して開発ボックスのイメージ定義ファイルを作成、テスト、編集するプロセスについて説明します。

Dev Box でカスタマイズを使用するには、2 つの方法があります。 チームのカスタマイズにより、 開発者のチーム用の共有構成が作成されます。 ユーザーのカスタマイズにより、 個々の開発者向けの個人用構成が作成されます。 次の表は、2 種類のカスタマイズの違いをまとめたものです。

特徴 チームのカスタマイズ ユーザーのカスタマイズ
構成対象 開発ボックス プール 開発ボックス
カスタマイズの適用対象 プール内のすべての開発ボックス 個々の開発ボックス
簡単に共有可能 イエス いいえ
カスタマイズ ファイル名 Imagedefinition.yaml myfilename.yaml または Workload.yaml
出典: カタログ アップロードするか、個人用リポジトリから取得
キー コンテナーのシークレットをサポート イエス イエス

[前提条件]

カスタマイズを構成するために必要なアクセス許可

アクション アクセス許可/ロール
デベロッパー センターでプロジェクト レベルのカタログを有効にする。 サブスクリプションに対する書き込みアクセス権限を持つプラットフォーム エンジニア。
プロジェクトのカタログ同期設定を有効にする。 サブスクリプションに対する書き込みアクセス権限を持つプラットフォーム エンジニア。
プロジェクトにカタログをアタッチする。 プロジェクトに対するデベロッパー センター プロジェクト管理者または共同作成者のアクセス許可。
イメージ定義ファイルを作成します。 指定なし。 イメージ定義ファイルは誰でも作成できます。
タスクをカタログに追加する。 カタログをホストしているリポジトリに追加するためのアクセス許可。

カスタマイズ タスクのソースを選択する

Dev Box タスクは、組み込まれているタスクからプラットフォームに移行することも、カタログに格納されているカスタム タスクを使用することもできます。 カスタマイズのニーズとプロジェクトの要件に最適なソースを選択します。

  • WinGet と PowerShell の組み込みタスクを使用します。 Dev Box デベロッパー センターでは、PowerShell タスクと WinGet タスクがすぐにサポートされます。 これらの組み込みタスクを使い始めることができます。 カスタマイズに PowerShell と WinGet のみが必要な場合は、カスタマイズ ファイルの作成に進みます。 詳細については、「 イメージ定義ファイルの作成」を参照してください。

    WinGet の組み込みタスクは、WinGet 実行可能ファイルではありません。 WinGet の組み込みタスクは、PowerShell WinGet コマンドレットに基づいています。

  • カタログを使用してカスタム タスクを定義します。 独自のカスタム タスクを作成できます。 組織全体でカスタム タスクを使用できるようにするには、カスタム タスク定義を含むカタログをデベロッパー センターにアタッチします。 Dev Box では、Azure Repos と GitHub カタログがサポートされています。 タスクはデベロッパー センターでのみ定義されるため、タスクとイメージ定義を別々のリポジトリに格納します。

    カスタム タスクを定義する方法の詳細については、「 Dev Box チームのカスタマイズ用のタスクを作成する」を参照してください。

プロジェクト レベルでイメージ定義を作成する

プロジェクトは、Dev Box リソースを効率的に管理するのに役立ちます。 各開発者チームに独自のプロジェクトを割り当てることで、リソースを効果的に整理できます。 カタログ リポジトリ内に複数のイメージ定義を作成し、それぞれに独自のフォルダーを作成して、プロジェクトの下の異なる開発者チームをターゲットにすることができます。

プロジェクト管理者にアクセス許可を割り当てる

カタログをプロジェクトにアタッチするには、プロジェクトのプロジェクト管理者または共同作成者のアクセス許可が必要です。 プロジェクト管理者アクセス許可を割り当てる方法については、「 Dev Box プロジェクトに管理アクセス権を付与する」を参照してください。

プロジェクト レベルのカタログを有効にする

プロジェクトにカタログを追加する前に、デベロッパー センター レベルでプロジェクト レベルのカタログを有効にする必要があります。 デベロッパー センター レベルでプロジェクト レベルのカタログの使用を有効にするには:

  1. Azure portal で自分のデベロッパー センターに移動します。

  2. 左側のメニューの [設定] で、[ デベロッパー センターの設定] を選択します。

  3. [ プロジェクト レベルのカタログ] で、[ プロジェクトごとにカタログを有効にする] を選択し、[ 適用] を選択します。

    [プロジェクト レベルのカタログ] ウィンドウが開き、[プロジェクトごとのカタログを有効にする] オプションが選択されているデベロッパー センターの設定ページを示すスクリーンショット。

プロジェクトにカタログを追加する方法の詳細については、「 GitHub または Azure Repos からのカタログの追加と構成」を参照してください。

イメージ定義ファイルを作成する

Visual Studio Code を使用して、イメージ定義ファイルを作成してテストできます。 組み込みタスクの使用に加えて、Visual Studio Code の Dev Box 拡張機能を使用して、デベロッパー センターで使用できるカスタム タスクを検出できます。

  1. テスト用に開発ボックスを作成します (または、既存の開発ボックスを使います)。

  2. テスト開発ボックスに Visual Studio Code をインストールし、Dev Box 拡張機能をインストールします。

  3. サンプル リポジトリからサンプル YAML イメージ定義ファイルをダウンロードします。 Visual Studio Code で開きます。

  4. コマンド パレットを使用して、カタログで使用できるタスクを検出します。 [ 表示>コマンド パレット>Dev ボックス: この開発ボックスで使用可能なタスクの一覧を選択します

    [Dev Box: List Available Tasks For This Dev Box]\(開発ボックスの使用可能なタスクの一覧表示\) オプションが選択されている Visual Studio Code コマンド パレットを示すスクリーンショット。

  5. コマンド パレットを使用して、Visual Studio Code でカスタマイズをテストします。 [ 表示>コマンド パレット>Dev ボックス: カスタマイズ タスクの適用を選択します。

    [Dev Box: Apply Customizations Tasks]\(カスタマイズ タスクの適用\) オプションが選択されている Visual Studio Code コマンド パレットを示すスクリーンショット。

  6. イメージ定義ファイルが実行され、指定したタスクがテスト開発ボックスに適用されます。 変更を検査し、Visual Studio Code ターミナルでタスクの実行中に生成されたエラーまたは警告を調べます。

  7. イメージ定義ファイルが正常に実行されたら、カタログにアップロードします。

システム タスクとユーザー タスク

イメージ定義ファイルでは、システム タスクとユーザー タスクの両方を使用できます。 イメージ定義ファイルのタスク セクションは、次のセクションに分かれています。 どちらのセクションも、カタログ内のタスク定義に基づいて同じパラメーターを共有します。

  • システム タスク: これらのタスクは、開発ボックスのプロビジョニング 段階で LocalSystem として実行されます。 通常、ソフトウェアのインストールや管理特権が必要なシステム設定の構成など、システム レベルの構成に使用されます。
  • ユーザー タスク: これらのタスクは、ユーザーが開発ボックスに初めてサインインした後、ユーザーとして実行されます。 通常、ユーザー固有のアプリケーションのインストールやユーザー コンテキストでのユーザー設定の構成など、ユーザー レベルの構成に使用されます。 たとえば、多くの場合、ユーザーはシステム全体ではなく、ユーザー コンテキストで Python と Visual Studio Code をインストールすることを好みます。 WinGet タスクがタスクの下で動作しない場合に、より良い結果を得るには、 userTasks セクションにタスクを配置します。

ユーザーのカスタマイズを構成する標準ユーザーは、ユーザー タスクのみを使用できます。 システム タスクは使用できません。

省略可能: 既存の Desired State Configuration ファイルを使用して開発ボックスをカスタマイズする

Desired State Configuration (DSC) は、コードとしての構成を使用して開発環境を管理できる PowerShell の管理プラットフォームです。 DSC を使用して、ソフトウェアのインストール、構成、設定など、開発ボックスの目的の状態を定義できます。

DSC 構成ファイルを使用して、組み込みの WinGet タスクを使用して開発ボックスを設定することもできます。

次の例は、既存の WinGet DSC ファイルを呼び出す開発ボックス イメージ定義ファイルを示しています。

tasks:
    - name: winget
      parameters:
          configure: "projectConfiguration.dsc.yaml"

詳細については、 WinGet の構成に関するページを参照してください。

プロジェクトのカタログ同期設定を構成する

カタログからイメージ定義を同期するためのプロジェクトを構成します。 この設定により、カタログのイメージ定義を使用して開発ボックス プールを作成できます。

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

  2. 検索ボックスに「プロジェクト」と入力します。 結果一覧から、[プロジェクト] を選択します。

  3. カタログ同期設定を構成する Dev Box プロジェクトを開きます。

  4. [カタログ] を選択します。

  5. 同期設定を選択します。

    Azure portal の [カタログ] ウィンドウを示すスクリーンショット。同期設定のボタンが強調表示されています。

  6. [同期設定] ペインで[イメージ定義] を選択し、[保存] を選択します。

    Azure portal の同期設定のウィンドウを示すスクリーンショット。画像定義のチェック ボックスが強調表示されています。

定義ファイルを含むカタログをアタッチする

カスタマイズ ファイルをイメージ定義として使用する前に、定義ファイルを含むカタログをデベロッパー センターまたはプロジェクトにアタッチする必要があります。 カタログは GitHub または Azure Repos から取得できます。

[イメージ定義] ペインには、プロジェクトがアクセスできるイメージ定義が一覧表示されます。

プロジェクトのアクセス可能なイメージ定義を一覧表示する Azure portal ペインを示すスクリーンショット。

カタログをアタッチする方法の詳細については、「 GitHub または Azure Repos からカタログを追加して構成する」を参照してください。

イメージ定義を使用するように開発ボックス プールを構成する

カスタマイズ ファイル (imagedefinition.yaml) を使用するように開発ボックス プールを構成して、開発チームがカスタマイズを使用できるようにします。 カスタマイズ ファイルを、デベロッパー センターまたはプロジェクトのカタログにリンクされたリポジトリに格納します。 このファイルをプールのイメージ定義として指定すると、カスタマイズが新しい開発ボックスに適用されます。

以下の手順で、開発ボックス プールを作成し、イメージ定義を指定する方法を示します。

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

  2. 検索ボックスに「プロジェクト」と入力します。 結果一覧から、[プロジェクト] を選択します。

  3. 新しい開発ボックス プールを関連付ける Dev Box プロジェクトを開きます。

  4. [開発ボックス プール] を選択してから、[作成] を選択します。

  5. [開発ボックス プールの作成] ペインで、次の値を入力します。

    設定 価値
    名前 プールの名前を入力します。 プール名は、開発者が開発ボックスを作成するときに選択するために表示されます。 これは、プロジェクト内で一意にする必要があります。
    定義 このボックスに、アクセス可能なカタログと開発ボックスの定義からのイメージ定義が一覧表示されます。 イメージ定義ファイルを選択します。
    ネットワーク接続 [Microsoft ホステッド ネットワークにデプロイする] を選択するか、既存のネットワーク接続を使用します。
    シングル サインオンを有効にする [はい] を選択して、このプール内の開発ボックスのシングル サインオンを有効にします。 組織に対してシングル サインオンを構成する必要があります。 詳細については、「開発ボックスのシングル サインオンを有効にする」を参照してください。
    Dev box Creator Privileges (開発ボックス作成者の特権) [ローカル管理者] または [標準ユーザー] を選択します。
    自動停止を有効にする [はい] が既定値です。 自動ストップ スケジュールを無効にするには、[ いいえ ] を選択します。 プールの作成後に自動ストップ スケジュールを構成できます。
    停止時刻 プール内のすべての開発ボックスをシャットダウンする時刻を選びます。
    タイム ゾーン 停止時刻が含まれるタイム ゾーンを選びます。
    ライセンス このプール内の開発ボックスに適用する Azure ハイブリッド特典ライセンスが組織にあることを確認するには、このチェック ボックスをオンにします。

    開発ボックス プールを作成するためのペインを示すスクリーンショット。

  6. を選択してを作成します。

  7. 新しい開発ボックス プールがリストに表示されることを確認します。 場合によっては、画面を最新の情報に更新する必要があります。

開発者ポータルを使用して開発ボックスを作成する

イメージ定義ファイルのカスタマイズが適用されていることを確認するには、Dev Box 開発者ポータルで開発ボックスを作成します。 「クイック スタート: Dev Box 開発者ポータルを使用して開発ボックスを作成して接続する」の手順に従います。 次に、新しく作成した開発ボックスに接続し、カスタマイズが期待どおりに動作することを確認します。

変更をテストするために、カスタマイズ ファイルを調整して新しい開発ボックスを作成できます。 カスタマイズが正しいことを確認したら、再利用可能なイメージを作成できます。

次のステップ

イメージ定義ファイルが作成されたので、それをカタログにアップロードし、カタログをプロジェクトにアタッチします。 イメージ定義ファイルは、開発チームの開発ボックスを構成および作成するために使用されます。