Skip to main content
Version: 2604 (Preview)

PowerShell Scripting Guide

Reference Azure PowerShell

DOCUMENT CATEGORY: Reference SCOPE: PowerShell automation patterns and helper usage PURPOSE: Document how Azure Local PowerShell automation is structured and executed MASTER REFERENCE: Microsoft Learn - PowerShell

Status: Active

Overview​

PowerShell provides the orchestration layer for much of the Azure Local automation estate. It is used to load variables, execute helper-driven workflows, run platform-specific deployment tasks, and bridge stages where Infrastructure as Code tools cannot fully automate the outcome.

Where PowerShell Fits​

AreaTypical Use
Variable loadingRead and validate variables.yml
Script orchestrationChain multi-step deployment tasks
Azure automationExecute Az module workflows and helper functions
On-premises executionConfigure nodes, trigger validations, and perform operational tasks
Wrapper scriptsDrive Terraform, Ansible, and external tooling consistently

Common Script Patterns​

PatternPurpose
Direct ScriptRun directly on the target node or management host
Orchestrated ScriptExecute from a management server across multiple systems
Standalone ScriptSelf-contained task logic for sharing, demos, or one-off execution
Azure CLI VariantPowerShell wrapper around az commands where needed

Variable Loading​

Most PowerShell automation starts by loading the shared configuration:

. scripts/common/utilities/helpers/config-loader.ps1
$config = Get-Config -ConfigPath "config/variables/variables.yml"

This enables the script to resolve environment-specific values from the central source of truth instead of hard-coding them inline.

Helper Usage​

Common helper functions typically cover:

  • Configuration loading and validation
  • Variable lookups by path
  • Exporting values for Terraform and Ansible
  • Logging, transcript capture, and structured output
  • Safety checks and preflight validation

Execution Guidance​

Use PowerShell when you need:

  • Strong operational control over sequence and retries
  • Local execution on Windows-based management systems
  • Deep integration with Azure PowerShell modules
  • A wrapper layer around Terraform, Ansible, or Azure CLI tasks

For the execution model used by the main delivery runbook, also see How to Use This Runbook.

Repository Areas​

PathPurpose
scripts/common/Shared helpers and reusable utilities
scripts/deploy/Deployment phase scripts
scripts/validate/Validation and post-deployment checks
config/variables/Shared configuration consumed by the scripts

Example Exports​

Export-TerraformTfvars -Config $config -OutputPath "src/terraform/environments/azure-local/terraform.tfvars"
Export-AnsibleVars -Config $config -OutputPath "src/ansible/inventory/group_vars/all.yml"

PreviousUpNext
Ansible PlaybooksPart 3: Automation GuidesImplementation Guide