Microsoft的 Desired State Configuration (DSC) 是宣告式組態平臺。 使用 DSC 時,計算機的狀態會使用應該清楚瞭解的格式來描述,即使讀者不是主題專家也一樣。 與命令式工具不同,使用 DSC 時,應用程式環境的定義與強制執行該定義的程式設計邏輯是分開的。
DSC 命令行應用程式 ()dsc 以聲明和冪等方式抽象化軟體元件的管理。 DSC 可在 Linux、macOS 和 Windows 上運行,無需任何外部依賴項。
透過 DSC,您可以:
- 撰寫 DSC 資源,以任何語言管理您的系統。
- 直接調用單個資源。
- 建立定義系統所需狀態的組態檔。
設定檔
DSC 設定文件是定義資源實例的聲明性數據檔。 一般而言,組態檔會定義要強制執行的狀態。 DSC 支援以 JSON 和 YAML 編寫配置文件。
範例案例包括應用程式環境或作/安全性標準的需求。
DSC 資源
DSC 資源會定義如何管理特定系統或應用程式元件的狀態。 資源描述元件可管理設定的架構。 每個資源都可以與 Get 和 Test 作業搭配使用,以擷取資源實例的目前狀態,並驗證其是否處於預期狀態。 大部分的資源也支援使用 集 作業強制執行所需的狀態。
範例案例包括:
- 如何更新文件的內容。
- 如何運行更改計算機狀態的實用程式。
- 如何配置應用程式的設置。
PowerShell DSC 的差異
DSC 在幾個重要方面與 PowerShell Desired State Configuration (PSDSC) 不同:
DSC 不 依賴於 PowerShell、Windows PowerShell 或 PSDesiredStateConfiguration PowerShell 模組。 DSC 通過
Microsoft.DSC/PowerShell和Microsoft.Windows/WindowsPowerShelladapter 資源提供與 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 資源使用 JSON 或 YAML 檔(而不是 MOF 檔)定義其架構。 自包含資源定義一個 資源清單 ,該清單指示 DSC 應如何調用資源以及資源可以管理哪些屬性。 對於適應的資源(如在 PowerShell 中實現的資源),適配器資源會告知 DSC 資源的可用屬性,並處理對適應資源的調用。
組態檔是在 JSON 或 YAML 檔案中定義,而不是 PowerShell 腳本檔案。 配置文件支援 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 計算機配置 )是 DSC 作為業務流程代理的早期合作夥伴。
DSC 使用 JSON 架構來定義 DSC 傳回的資源、配置文件和輸出的結構。 這些架構使 DSC 與其他工具的整合變得更加容易,因為它們標準化並記錄了如何與 DSC 交互。
有關更多資訊,請參閱 DSC JSON 架構參考概述。
另請參閱
- 以命令為基礎的 DSC 資源剖析,以瞭解以您選擇的語言撰寫資源。
- 'dsc' 命令的命令行參考
- DSC JSON 架構參考概述
- WinGet 配置