Microsoft の Desired State Configuration (DSC) は、宣言型の構成プラットフォームです。 DSC では、コンピューターの状態は、読者が主題の専門家でない場合でも理解できる形式を使用して記述されます。 命令型ツールとは異なり、DSC では、アプリケーション環境の定義は、その定義を適用するプログラミング ロジックとは別です。
DSC コマンド ライン アプリケーション (dsc
) は、ソフトウェア コンポーネントの管理を宣言的かつべき等に抽象化します。 DSC は、外部依存関係なしで Linux、macOS、および Windows で動作します。
DSC では、次のことができます。
- DSC リソースを作成して、任意の言語でシステムを管理します。
- 個々のリソースを直接呼び出します。
- システムの望ましい状態を定義する構成ドキュメントを作成します。
構成ドキュメント
DSC 構成ドキュメントは、リソースのインスタンスを定義する宣言型データ ファイルです。 通常、構成ドキュメントでは、適用する状態を定義します。 DSC では、JSON と YAML の両方での構成ドキュメントの記述がサポートされています。
シナリオの例には、アプリケーション環境または運用/セキュリティ標準の要件が含まれます。
DSC リソース
DSC リソースは、特定のシステムまたはアプリケーション コンポーネントの状態を管理する方法を定義します。 リソースは、コンポーネントの管理可能な設定のスキーマを記述します。 すべてのリソースを Get と Test 操作と共に使用して、リソース インスタンスの現在の状態を取得し、目的の状態であるかどうかを検証できます。 また、ほとんどのリソースでは、Set 操作を使用した目的の状態の適用もサポートされています。
たとえば、次のようなシナリオが考えられます。
- ファイルの内容を更新する方法。
- マシンの状態を変更するユーティリティを実行する方法。
- アプリケーションの設定を構成する方法。
PowerShell DSC との違い
DSC は、PowerShell Desired State Configuration (PSDSC) といくつかの重要な点で異なります。
DSC は、PowerShell、Windows PowerShell、または PSDesiredStateConfiguration PowerShell モジュールに依存しません。 DSC は、
Microsoft.DSC/PowerShell
リソースとMicrosoft.Windows/WindowsPowerShell
アダプター リソースを通じて、PSDSC リソースとの完全な互換性を提供します。Microsoft.DSC/PowerShell
アダプター リソースを使用すると、PowerShell クラスとして実装された任意の PSDSC リソースを使用できます。 このリソースは、PowerShell での PSDSC リソースの検出、検証、および呼び出しを処理します。 このリソースは、すべてのプラットフォームの DSC インストール パッケージに含まれています。Microsoft.Windows/WindowsPowerShell
アダプター リソースを使用すると、Windows PowerShell と互換性のある任意の PSDSC リソースを使用できます。 このリソースは、Windows PowerShell での PSDSC リソースの検出、検証、および呼び出しを処理します。 このリソースは、Windows の DSC インストール パッケージにのみ含まれています。DSC は PowerShell に依存しないため、PowerShell がインストールされていなくても DSC を使用し、bash、Python、C#、Rust、またはその他の言語で記述されたリソースを管理できます。
DSC には、ローカル構成マネージャーは含まれていません。 DSC はコマンドとして呼び出されます。 サービスとして実行されません。
新しい DSC リソースは、MOF ファイルではなく、JSON ファイルまたは YAML ファイルを使用してスキーマを定義します。 自己完結型リソースは、DSC がリソースを呼び出す方法と、リソースが管理できるプロパティを示す リソース マニフェスト を定義します。 PowerShell で実装されているリソースなど、適応されたリソースの場合、アダプター リソースは、リソースで使用可能なプロパティを DSC に通知し、適応されたリソースの呼び出しを処理します。
構成ドキュメントは、PowerShell スクリプト ファイルではなく、JSON または YAML ファイルで定義されます。 設定ドキュメントは、パラメータ、変数、メタデータ、設定内のデータを動的に解決するための式関数など、ARM テンプレートの機能のサブセットをサポートしています。
取り付け
DSC を手動でインストールする
DSC を任意のプラットフォームにインストールするには:
- 最新リリースを PowerShell/DSC リポジトリからダウンロードします。
- リリース アーカイブを展開します。
- 展開されたアーカイブの内容を含むフォルダーを
PATH
に追加します。
WinGetを使用してWindowsにDSCをインストールする
次のコマンドを使用すると、Microsoft Store から公開された winget
パッケージを使用して DSC をインストールできます。
DSC の最新バージョンを検索します。
winget search DesiredStateConfiguration --source msstore
Name Id Version Source
---------------------------------------------------------------
DesiredStateConfiguration 9NVTPZWRC6KQ Unknown msstore
DesiredStateConfiguration-Preview 9PCX3HX4HZ0Z Unknown msstore
id
パラメーターを使用して DSC をインストールします。
# Install latest stable
winget install --id 9NVTPZWRC6KQ --source msstore
# Install latest preview
winget install --id 9PCX3HX4HZ0Z --source msstore
DSC との統合
DSC は、リソースの定義と呼び出しに関する懸念事項を抽象化するプラットフォーム ツールです。 WinGet、Microsoft Dev Box、Azure Machine Configuration などの高次ツールは、オーケストレーション エージェントとして DSC の初期のパートナーです。
DSC では、JSON スキーマを使用して、リソース、構成ドキュメント、および DSC が返す出力の構造を定義します。 これらのスキーマは、DSC とのインターフェイス方法を標準化し、文書化するため、DSC を他のツールと統合しやすくなります。
詳細については、「 DSC JSON スキーマのリファレンスの概要」を参照してください。
関連項目
- コマンド ベースの DSC リソースの構造、選択した言語でのリソースの作成について学習します。
- 'dsc' コマンド のコマンド ライン リファレンス
- DSC JSON スキーマのリファレンスの概要
- WinGetの構成