From 55c3581bed2a90d7169aa9c660496215155c5f88 Mon Sep 17 00:00:00 2001 From: Sean Wheeler Date: Thu, 10 Sep 2026 14:53:45 -0500 Subject: [PATCH] Add DSC install article (#418) * Add DSC install article * Apply batched suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Fix macOS steps --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- dsc/docs-conceptual/dsc-3.0/install.md | 256 ++++++++++++++++++++++++ dsc/docs-conceptual/dsc-3.0/overview.md | 74 ++----- dsc/docs-conceptual/dsc-3.0/toc.yml | 2 + 3 files changed, 277 insertions(+), 55 deletions(-) create mode 100644 dsc/docs-conceptual/dsc-3.0/install.md diff --git a/dsc/docs-conceptual/dsc-3.0/install.md b/dsc/docs-conceptual/dsc-3.0/install.md new file mode 100644 index 0000000..51e543d --- /dev/null +++ b/dsc/docs-conceptual/dsc-3.0/install.md @@ -0,0 +1,256 @@ +--- +description: >- + Learn how to install DSC v3 on supported platforms. +ms.date: 09/10/2026 +ms.topic: overview +title: Install Microsoft DSC v3 +--- + +# Install Microsoft DSC v3 + +There are multiple ways to install DSC v3. + +- On Windows, you can install using WinGet or manually install the `.zip` file +- On Linux you can install using the DEB or RPM package or manually install the `.tar.gz` file +- On macOS you must manually install the `.tar.gz` + +Select the tab for the desired platform to see the detailed installation instructions. + + +## [Windows](#tab/windows) + +### Install DSC using WinGet + +The following commands can be used to install DSC using the published `winget` packages. + +Search for the latest version of DSC: + +```powershell +winget search DesiredStateConfiguration --source msstore +``` + +```Output +Name Id Version Source +--------------------------------------------------------------- +DesiredStateConfiguration 9NVTPZWRC6KQ Unknown msstore +DesiredStateConfiguration-Preview 9PCX3HX4HZ0Z Unknown msstore +``` + +Install DSC using the `id` parameter: + +```powershell +# Install latest stable +winget install --id 9NVTPZWRC6KQ --source msstore +``` + +```powershell +# Install latest preview +winget install --id 9PCX3HX4HZ0Z --source msstore +``` + +### Install DSC from the `.zip` file + +1. Download the latest release from the DSC repository for your processor type: + + - Arm64 - [DSC-3.3.0-rc.2-aarch64-pc-windows-msvc.zip][04] + - x64 - [DSC-3.3.0-rc.2-x86_64-pc-windows-msvc.zip][06] + +1. Unzip the package to a folder: + + ```powershell + Expand-Archive -Path .\DSC-3.3.0-rc.2-x86_64-pc-windows-msvc.zip -DestinationPath C:\DSC + ``` + +1. Add the DSC folder to your system `PATH` environment variable. + +## [Debian](#tab/debian) + +### Install DSC from the Microsoft package repository + +> [!NOTE] +> This script only works for supported versions of Debian that have a package published to the +> Microsoft package repository. For other versions of Debian, use the manual installation method. + +```sh +#!/bin/bash +################################### +# Prerequisites + +# Update and install the pre-requisite packages. +sudo apt-get install -y wget apt-transport-https software-properties-common + +# Download the Microsoft repository keys for your version of Ubuntu +source /etc/os-release +wget -q https://packages.microsoft.com/config/debian/$VERSION_ID/packages-microsoft-prod.deb + +# Register the Microsoft repository keys +sudo dpkg -i packages-microsoft-prod.deb +rm packages-microsoft-prod.deb + +# Update the list of packages and install DSC +sudo apt-get update +sudo apt-get install -y dsc +``` + +### Manually install DSC from the DEB package + +Download the universal package from the GitHub releases page for your processor architecture. + +- Arm64 - [DSC-3.3.0-rc.2-arm64.deb][02] +- x64 - [DSC-3.3.0-rc.2-amd64.deb][01] + +The following shell script downloads and installs the current release of DSC. You can change the URL +to download the version of DSC that you want to install. + +```sh +#!/bin/bash +################################### +# Prerequisites + +# Update and install the pre-requisite packages. +sudo apt-get update +sudo apt-get install -y wget + +# Download the DSC package file +wget https://github.com/PowerShell/DSC/releases/download/v3.3.0-rc.2/dsc_3.3.0-rc.2-1_amd64.deb + +# Install the DSC package +sudo dpkg -i dsc_3.3.0-rc.2-1_amd64.deb +rm dsc_3.3.0-rc.2-1_amd64.deb +``` + +## [Ubuntu](#tab/ubuntu) + +### Install DSC from the Microsoft package repository + +> [!NOTE] +> This script only works for supported versions of Ubuntu that have a package published to the +> Microsoft package repository. For other versions of Ubuntu, use the manual installation method. + +```sh +#!/bin/bash +################################### +# Prerequisites + +# Update and install the pre-requisite packages. +sudo apt-get install -y wget apt-transport-https software-properties-common + +# Download the Microsoft repository keys for your version of Debian +source /etc/os-release +wget -q https://packages.microsoft.com/config/ubuntu/$VERSION_ID/packages-microsoft-prod.deb + +# Register the Microsoft repository keys +sudo dpkg -i packages-microsoft-prod.deb +rm packages-microsoft-prod.deb + +# Update the list of packages and install DSC +sudo apt-get update +sudo apt-get install -y dsc +``` + +### Manually install DSC from the DEB package + +Download the universal package from the GitHub releases page for your processor architecture. + +- Arm64 - [DSC-3.3.0-rc.2-arm64.deb][02] +- x64 - [DSC-3.3.0-rc.2-amd64.deb][01] + +The following shell script downloads and installs the current release of DSC. You can change the URL +to download the version of DSC that you want to install. + +```sh +#!/bin/bash +################################### +# Prerequisites + +# Update and install the pre-requisite packages. +sudo apt-get update +sudo apt-get install -y wget + +# Download the DSC package file +wget https://github.com/PowerShell/DSC/releases/download/v3.3.0-rc.2/dsc_3.3.0-rc.2-1_amd64.deb + +# Install the DSC package +sudo dpkg -i dsc_3.3.0-rc.2-1_amd64.deb +rm dsc_3.3.0-rc.2-1_amd64.deb +``` + +## [RedHat](#tab/redhat) + +### Install DSC from the Microsoft package repository + +> [!NOTE] +> This script only works for supported versions of RHEL that have a package published to the +> Microsoft package repository. For other supported versions of RHEL, use the manual installation +> method. + +```sh +#!/bin/bash +################################### +# Get version of RHEL +source /etc/os-release +majorver=${VERSION_ID%.*} + +# Download and register the Microsoft Red Hat repository package +curl -sSL -O https://packages.microsoft.com/config/rhel/$majorver/packages-microsoft-prod.rpm +sudo rpm -i packages-microsoft-prod.rpm +rm packages-microsoft-prod.rpm + +# Update package index files +sudo dnf update + +# Install DSC +sudo dnf install dsc -y +``` + +### Manually install DSC from the RPM package + +Download the universal package from the GitHub releases page for your processor architecture. + +- Arm64 - [DSC-3.3.0-rc.2-arm64.rpm][07] +- x64 - [dsc-3.3.0.rc.2-1.x86_64.rpm)][08] + +The following shell script downloads and installs the current release of DSC. You can change the URL +to download the version of DSC that you want to install. + +```sh +sudo dnf install https://github.com/PowerShell/DSC/releases/download/v3.3.0-rc.2/dsc-3.3.0.rc.2-1.x86_64.rpm +``` + +## [macOS](#tab/macos) + +### Manually install DSC from the `.tar.gz` package + +Download the macOS package from the GitHub releases page for your processor architecture. + +- Arm64 - [DSC-3.3.0-rc.2-aarch64-apple-darwin.tar.gz][03] +- x64 - [DSC-3.3.0-rc.2-x86_64-apple-darwin.tar.gz][05] + +The following shell script downloads and installs the current release of DSC. You can change the URL +to download the version of DSC that you want to install. + +```zsh +curl -sSL -O https://github.com/PowerShell/DSC/releases/download/v3.3.0-rc.2/DSC-3.3.0-rc.2-aarch64-apple-darwin.tar.gz +``` + +Create a new folder and extract files to that folder: + +```zsh +mkdir -p ~/.local/share/dsc +tar -xzf ./dsc-3.3.0-rc.2-aarch64-apple-darwin.tar.gz -C ~/.local/share/dsc +``` + +Add the new folder to your PATH environment variable. + +--- + + + +[01]: https://github.com/PowerShell/DSC/releases/download/v3.3.0-rc.2/dsc_3.3.0-rc.2-1_amd64.deb +[02]: https://github.com/PowerShell/DSC/releases/download/v3.3.0-rc.2/dsc_3.3.0-rc.2-1_arm64.deb +[03]: https://github.com/PowerShell/DSC/releases/download/v3.3.0-rc.2/DSC-3.3.0-rc.2-aarch64-apple-darwin.tar.gz +[04]: https://github.com/PowerShell/DSC/releases/download/v3.3.0-rc.2/DSC-3.3.0-rc.2-aarch64-pc-windows-msvc.zip +[05]: https://github.com/PowerShell/DSC/releases/download/v3.3.0-rc.2/DSC-3.3.0-rc.2-x86_64-apple-darwin.tar.gz +[06]: https://github.com/PowerShell/DSC/releases/download/v3.3.0-rc.2/DSC-3.3.0-rc.2-x86_64-pc-windows-msvc.zip +[07]: https://github.com/PowerShell/DSC/releases/download/v3.3.0-rc.2/dsc-3.3.0.rc.2-1.aarch64.rpm +[08]: https://github.com/PowerShell/DSC/releases/download/v3.3.0-rc.2/dsc-3.3.0.rc.2-1.x86_64.rpm diff --git a/dsc/docs-conceptual/dsc-3.0/overview.md b/dsc/docs-conceptual/dsc-3.0/overview.md index 4a15bc4..cc65247 100644 --- a/dsc/docs-conceptual/dsc-3.0/overview.md +++ b/dsc/docs-conceptual/dsc-3.0/overview.md @@ -2,7 +2,7 @@ description: >- Learn about Microsoft's Desired State Configuration platform, including what it does and when it should be used. -ms.date: 06/09/2025 +ms.date: 09/10/2026 ms.topic: overview title: Microsoft Desired State Configuration overview --- @@ -51,7 +51,7 @@ Example scenarios include: DSC differs from PowerShell Desired State Configuration (PSDSC) in a few important ways: -- DSC doesn't _depend_ on PowerShell, Windows PowerShell, or the [PSDesiredStateConfiguration][01] +- DSC doesn't _depend_ on PowerShell, Windows PowerShell, or the [PSDesiredStateConfiguration][06] PowerShell module. DSC provides full compatibility with PSDSC resources through the `Microsoft.DSC/PowerShell` and `Microsoft.Windows/WindowsPowerShell` _adapter resources_. @@ -78,71 +78,35 @@ DSC differs from PowerShell Desired State Configuration (PSDSC) in a few importa ## Installation -### Install DSC manually - -To install DSC on any platform: - -1. Download the [latest release from the PowerShell/DSC repository][02]. -1. Expand the release archive. -1. Add the folder containing the expanded archive contents to the `PATH`. - -### Install DSC on Windows with WinGet - -The following commands can be used to install DSC using the published `winget` packages from the -Microsoft Store: - -Search for the latest version of DSC: - -```powershell -winget search DesiredStateConfiguration --source msstore -``` - -```Output -Name Id Version Source ---------------------------------------------------------------- -DesiredStateConfiguration 9NVTPZWRC6KQ Unknown msstore -DesiredStateConfiguration-Preview 9PCX3HX4HZ0Z Unknown msstore -``` - -Install DSC using the `id` parameter: - -```powershell -# Install latest stable -winget install --id 9NVTPZWRC6KQ --source msstore -``` - -```powershell -# Install latest preview -winget install --id 9PCX3HX4HZ0Z --source msstore -``` +DSC v3 installation instructions are covered in [Install DSC v3][07]. ## Integrating with DSC - DSC is a platform tool that abstracts the concerns for defining and invoking resources. Higher -order tools, like [WinGet][03], [Microsoft Dev Box][04], and [Azure Machine Configuration][05] are +order tools, like [WinGet][04], [Microsoft Dev Box][01], and [Azure Machine Configuration][02] are early partners for DSC as orchestration agents. DSC uses JSON schemas to define the structure of resources, configuration documents, and the outputs that DSC returns. These schemas make it easier to integrate DSC with other tools, because they standardize and document how to interface with DSC. -For more information, see [DSC JSON Schema reference overview][06]. +For more information, see [DSC JSON Schema reference overview][09]. -## See Also +## Next steps -- [Anatomy of a command-based DSC Resource][07] to learn about authoring a resource in your +- [Install DSC v3][07] +- [Anatomy of a command-based DSC Resource][05] to learn about authoring a resource in your language of choice. - [Command line reference for the 'dsc' command][08] -- [DSC JSON Schema reference overview][06] -- [WinGet Configuration][09] +- [DSC JSON Schema reference overview][09] +- [WinGet Configuration][03] -[01]: https://github.com/powershell/psdesiredstateconfiguration -[02]: https://github.com/PowerShell/DSC/releases/latest -[03]: /windows/package-manager/winget -[04]: /azure/dev-box/overview-what-is-microsoft-dev-box -[05]: /azure/governance/machine-configuration/overview -[06]: ./reference/schemas/overview.md -[07]: ./concepts/resources/anatomy.md -[08]: ./reference/cli/index.md -[09]: /windows/package-manager/configuration/ +[01]: /azure/dev-box/overview-what-is-microsoft-dev-box +[02]: /azure/governance/machine-configuration/overview +[03]: /windows/package-manager/configuration/ +[04]: /windows/package-manager/winget +[05]: concepts/resources/anatomy.md +[06]: https://github.com/powershell/psdesiredstateconfiguration +[07]: install.md +[08]: reference/cli/index.md +[09]: reference/schemas/overview.md diff --git a/dsc/docs-conceptual/dsc-3.0/toc.yml b/dsc/docs-conceptual/dsc-3.0/toc.yml index 3d6b1c1..fc9828e 100644 --- a/dsc/docs-conceptual/dsc-3.0/toc.yml +++ b/dsc/docs-conceptual/dsc-3.0/toc.yml @@ -1,6 +1,8 @@ items: - name: Microsoft DSC 3.0 href: overview.md + - name: Install DSC 3.0 + href: install.md - name: Changelog href: changelog.md - name: Getting started