開発者が新しいプロジェクトや新しいチームを使い始めるのは、多くの場合、複雑で時間がかかります。 Microsoft Dev Box のカスタマイズ機能は、開発環境のセットアップを効率化するのに役立ちます。 カスタマイズを使用すると、必要なアプリケーション、ツール、リポジトリ、コード ライブラリ、パッケージ、ビルド スクリプトを使用して、すぐにコードを記述できるワークステーションを構成できます。
Dev Box のカスタマイズを使用すると、次の機能を利用できます。
- 必要なツールとアプリケーションをインストールします。
- 組織のセキュリティ ポリシーを適用する。
- 開発ボックス間で一貫性を確保します。
Dev Box には、カスタマイズを使用する 2 つの方法があります。
- チームのカスタマイズ: チームの複数の標準イメージまたは ゴールデン イメージを作成する代わりに、開発者のチームの標準的な共有構成を作成するために使用されます。
- ユーザーのカスタマイズ: 開発者が個人設定の構成を作成するために使用します。 ユーザーのカスタマイズにより、開発者は構成をファイルに格納し、開発ボックスを作成するときに実行できます。 カスタマイズは、すべての開発ボックスで一貫性を提供します。
特徴 | チームのカスタマイズ | ユーザーのカスタマイズ |
---|---|---|
構成対象 | 開発ボックス プール | 開発ボックス |
カスタマイズの適用対象 | プール内のすべての開発ボックス | 個々の開発ボックス |
簡単に共有可能 | イエス | いいえ |
カスタマイズ ファイル名 | imagedefinition.yaml |
myfilename.yaml |
出典: | カタログまたは個人用リポジトリ | アップロードするか、個人用リポジトリから取得 |
キー コンテナーのシークレットをサポート | イエス | イエス |
カスタマイズ ファイルとは
Dev Box のカスタマイズでは、開発者が開発ボックスを作成するときに、YAML 形式のファイルを使用して、デベロッパー センターまたはカタログから適用するタスクの一覧を指定します。 これらのタスクは、カタログ タスクを特定し、パラメーター (インストールするソフトウェアの名前など) を指定するものです。 開発者は、独自のカスタマイズ ファイルを作成することも、共有カスタマイズ ファイルを使用することもできます。
カスタマイズ ファイルで Azure Key Vault のシークレットを使用して、プライベート リポジトリを複製できます。 また、アクセス トークンを必要とする任意のカスタム タスクで使用することもできます。
タスクとは
Dev Box のカスタマイズ タスクは PowerShell スクリプトのラッパーです。 それを使って、チームがカスタマイズで使用できる再利用可能なコンポーネントを定義します。 WinGet タスクと PowerShell タスクは、プラットフォームを通じて利用できます。 カタログを使用して新しいファイルを追加できます。 タスクは、サインイン後にシステム コンテキストまたはユーザー コンテキストで実行できます。
- プロジェクト管理者は、カスタム タスクと組み込みタスクの両方を使用できるチームのカスタマイズを定義します。
- ユーザーのカスタマイズでは、ユーザーが管理者である場合、またはタスクがカタログを通じて事前に承認されたカスタム タスクである場合にのみ、システム タスクを使用できます。 Standard Dev Box ユーザーは、組み込みの PowerShell タスクと WinGet タスクをシステム コンテキストで実行できないため、特権のエスカレーションを回避できます。
タスクを作成するときに、システム コンテキストで実行する必要があるタスクと、サインイン後にユーザー コンテキストで実行できるタスクを決定します。
チームのカスタマイズとユーザーのカスタマイズの違い
Dev Box チームのカスタマイズを使用すると、開発者チームのリードと IT 管理者は、開発ボックス プールのカスタマイズ ファイルを事前構成できます。 カスタマイズにより、開発者が手動でセットアップする必要がなくなります。
チームのカスタマイズを使用して、チームの Dev Box デプロイをセキュリティで保護し、標準化することをお勧めします。 開発者チーム間で一般的な YAML ファイルを共有すると、非効率的になり、エラーが発生し、コンプライアンス ポリシーに違反する可能性があります。
個々の開発者は、チームのカスタマイズに加えて、開発環境を制御する開発ボックスを作成するときにカスタマイズ ファイルをアップロードできます。 開発者は、個人の設定とアプリにのみ個別のカスタマイズを使用する必要があります。
カスタマイズのしくみ
チームのカスタマイズとユーザーのカスタマイズはどちらも、開発ボックスを作成するときに適用するタスクの一覧を指定する YAML ベースのファイルです。 適切なタブを選択して、各種類のカスタマイズのしくみの詳細を確認します。
チームのカスタマイズのしくみ
チーム カスタマイズを使うと、Packer や Azure 仮想マシン (VM) イメージ テンプレートのようなイメージング ソリューションのセットアップに投資しなくても、開発チームごとに共有される Dev Box 構成を定義できます。 チーム カスタマイズで提供される軽量の代替手段を使うと、中心となるプラットフォーム エンジニアリング チームは、Dev Box の構成管理を、それを使うチームに委任できます。
また、チームのカスタマイズには、カスタム イメージにフラット化することで、チームの Dev Box カスタマイズを最適化する組み込みの方法も用意されています。 同じカスタマイズ ファイルを使用でき、追加のインフラストラクチャを管理したり、イメージ テンプレートを保持したりする必要はありません。
組織に合わせて Dev Box チームのカスタマイズを構成するには、慎重な計画と情報に基づいた意思決定が必要です。 次の図は、プロセスの概要と重要な意思決定ポイントを示しています。
チームのカスタマイズ用に Dev Box を構成する
チームのカスタマイズをサポートするように Dev Box を設定するには、次の手順に従います。
- デベロッパー センターを構成します。
- プロジェクト レベルのカタログを有効にします。
- プロジェクト管理者にアクセス許可を割り当てます。
- カスタムの再利用可能なコンポーネントでカタログを使用するかどうかを決定します。
- 組み込み (プラットフォームにより提供される):
- PowerShell または WinGet の組み込みタスクを使用します (~/で始まります)。 組み込みのタスクから開始することをお勧めします。
- 独自のカタログ:
- Azure Repos または GitHub にホストします。
- タスクの追加。
- デベロッパー センターにアタッチします。
- 組み込み (プラットフォームにより提供される):
-
imagedefinition.yaml
という名前の YAML カスタマイズ ファイルを作成します。 - 開発ボックス プール内のイメージを指定します。
- 開発ボックス プールを作成または変更します。
- イメージ定義として
imagedefinition.yaml
を指定します。
- イメージ定義の使用方法を選択します。
- 開発ボックスの作成時に、イメージ定義でタスクを実行します。
- イメージ定義をカスタム イメージに最適化します。
- 開発者ポータルを使って、構成済みのプールから開発ボックスを作成します。
チームのカスタマイズとイメージ定義の記述の詳細については、「 Dev Box チームのカスタマイズ用のイメージ定義ファイルを記述する」を参照してください。 次に、イメージ定義をカスタム イメージに最適化する方法については、「 Dev Box チームのカスタマイズ用にイメージングを構成する」を参照してください。