About This Page
This page is part of the Azure documentation. It contains code examples and configuration instructions for working with Azure services.
Bias Analysis
Bias Types:
⚠️
powershell_heavy
⚠️
windows_first
⚠️
missing_linux_example
⚠️
windows_tools
Summary:
The documentation is heavily biased toward Windows environments. All examples, tooling, and workflows are Windows-centric, relying exclusively on PowerShell, Windows Server, Chocolatey (a Windows package manager), and Windows-specific DSC resources. Linux is only mentioned in passing, and no Linux equivalents, examples, or tools are provided. There are no instructions or code samples for Linux systems, nor is there guidance for achieving similar outcomes on Linux platforms.
Recommendations:
- Provide parallel Linux-focused examples using native Linux tools (e.g., apt, yum, or snap) and configuration management solutions (e.g., Ansible, Chef, or Puppet) where possible.
- Include sample workflows for setting up continuous deployment on Linux VMs, possibly using Azure Automation State Configuration with Linux-compatible DSC resources or alternatives.
- Explicitly mention the current limitations or retirement status for Linux support, and offer migration or alternative guidance for Linux users.
- Balance the narrative by introducing Linux concepts and tools alongside Windows ones, rather than only referencing Linux in passing.
- Where PowerShell is used, provide Bash or shell script equivalents for Linux scenarios.
- If Azure Automation State Configuration is no longer supporting Linux, provide links to recommended alternatives for Linux configuration management in Azure.
Create pull request
Flagged Code Snippets
This step takes a few minutes while the pull server is set up.
You can create your Automation account in any of the following Azure regions:
- East US 2
- South Central US
- US Gov Virginia
- West Europe
- Southeast Asia
- Japan East
- Central India
- Australia Southeast
- Canada Central
- North Europe
## Step 2: Make VM extension tweaks to the Resource Manager template
Details for VM registration (using the PowerShell DSC VM extension) provided in this
[Azure Quickstart Template][12]. This step registers your new VM with the pull server in the list of
State Configuration Nodes. Part of this registration is specifying the node configuration to be
applied to the node. This node configuration doesn't have to exist yet in the pull server, but you
need to choose the name of the node and the name of the configuration. For this example, the node is
`isvbox` and the configuration name is `ISVBoxConfig`. The node configuration name you specify in
`DeploymentTemplate.json` is `ISVBoxConfig.isvbox`.
## Step 3: Add required DSC resources to the pull server
The PowerShell Gallery can install DSC resources into your Azure Automation account. Navigate to the
resource you want and select **Deploy to Azure Automation**.
![PowerShell Gallery example][03]
Another technique recently added to the Azure portal allows you to pull in new modules or update
existing modules. The select the **Browse Gallery** icon to see the list of modules in the gallery,
drill into details, and import into your Automation account. You can use this process to keep your
modules up to date. Also, the import feature checks dependencies with other modules to ensure
nothing gets out of sync.
There's also a manual approach, used only once per resource, unless you want to upgrade it later.
For more information on authoring PowerShell integration modules, see
[Authoring Integration Modules for Azure Automation][11].
>[!NOTE]
> The folder structure of a PowerShell integration module for a Windows computer is a little
> different from the folder structure expected by the Azure Automation.
1. Install [Windows Management Framework v5][10] (not needed for Windows 10).
2. Install the integration module.
3. Copy the module folder from `C:\Program Files\WindowsPowerShell\Modules\MODULE-NAME` to a
temporary folder.
4. Delete samples and documentation from the main folder.
5. Zip the main folder, naming the ZIP file with the name of the folder.
6. Put the ZIP file into a reachable HTTP location, such as blob storage in an Azure Storage account.
7. Run the following command.
The included example implements these steps for cChoco and xNetworking.
## Step 4: Add the node configuration to the pull server
There's nothing special about the first time you import your configuration into the pull server and
compile. All later imports or compilations of the same configuration look exactly the same. Each
time you update your package and need to push it out to production you do this step after ensuring
the configuration file is correct - including the new version of your package. Here's the
configuration file `ISVBoxConfig.ps1`:
The following `New-ConfigurationScript.ps1` script was modified to use the Az PowerShell module: