The Azure Cloud Solution Architect Toolbox: Essential Tools for macOS and Windows
Working effectively as an Azure Cloud Solution Architect requires a well-configured workstation. Whether you’re on macOS or Windows, you need a consistent set of tools for infrastructure provisioning, scripting, container management, and day-to-day cloud operations.
This post covers the tools I rely on daily and how to install them across macOS, Windows (PowerShell + Scoop), and Linux (WSL with Ubuntu).
Package Managers First Link to heading
Before installing anything, set up a proper package manager. Package managers keep your tools up to date, handle dependencies, and make your setup reproducible.
macOS: Homebrew Link to heading
Homebrew is the standard package manager for macOS.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Windows: Scoop Link to heading
Scoop installs tools from the command line without requiring admin privileges. It avoids PATH pollution and GUI installers.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
Add the extras bucket for additional tools:
scoop bucket add extras
Windows: WSL with Ubuntu Link to heading
WSL (Windows Subsystem for Linux) gives you a full Linux environment on Windows. We specifically want Ubuntu because it mirrors what most CI/CD runners use in production. Whether you’re running GitHub Actions or Azure DevOps Pipelines, the hosted runner is almost always an Ubuntu-based Linux machine. By developing and testing your scripts, OpenTofu/Terraform configurations, and automation workflows inside WSL with Ubuntu, you get an environment that closely matches your CI/CD runners. This means your shell scripts, file permissions, path handling, and line endings all behave almost exactly as they will when your pipeline runs — no more “works on my machine” surprises when you push to the automation server.
Install WSL with Ubuntu:
wsl --install -d Ubuntu
Once inside your Ubuntu WSL environment, install Homebrew for Linux to manage your tooling:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Tip: I recommend running all your infrastructure-as-code workflows (Terraform, scripts, pipeline testing, etc.) inside WSL rather than native Windows. This gives you the closest parity with your CI/CD runner environment and lets you catch issues locally before they fail in your pipeline. You will also find that community support and documentation for these tools is often Linux-focused, making WSL a more seamless experience.
Core Azure Tools Link to heading
Azure CLI Link to heading
The primary command-line interface for managing Azure resources. You’ll use this constantly.
macOS / Linux:
brew install azure-cli
Windows (Scoop):
scoop install azure-cli
After installation:
az login
# List your subscriptions to find the one you need
az account list --output table
# Or get a clean list of just the names
az account list | jq -r '.[].name'
# Set the subscription you want to work with
az account set --subscription "Your Subscription Name"
# Keep Azure CLI current
az upgrade
Azure PowerShell Module Link to heading
Essential for automation scenarios where PowerShell is preferred, and for working with certain Azure services that have richer PowerShell cmdlet support.
macOS / Linux:
brew install powershell
pwsh -Command "Install-Module -Name Az -Repository PSGallery -Force"
Windows (PowerShell):
Install-Module -Name Az -Repository PSGallery -Force
Azure Developer CLI (azd) Link to heading
A higher-level CLI focused on developer workflows — provisioning infrastructure and deploying applications from templates.
macOS / Linux:
brew install azure-dev
Windows (Scoop):
scoop install azure-dev
Bicep CLI Link to heading
Azure’s domain-specific language for deploying Azure resources declaratively. It compiles down to ARM templates but is far more readable.
az bicep install
az bicep upgrade
This works on all platforms since it’s installed as an Azure CLI extension.
Infrastructure as Code Link to heading
Terraform Link to heading
The industry-standard multi-cloud IaC tool. Even in Azure-heavy shops, Terraform is widely used alongside or instead of Bicep.
macOS / Linux:
brew install terraform
Windows (Scoop):
scoop install terraform
OpenTofu Link to heading
The open-source fork of Terraform. Worth having available if your organization is evaluating alternatives.
macOS / Linux:
brew install opentofu
Windows (Scoop):
scoop install opentofu
Terragrunt Link to heading
A thin wrapper for Terraform that provides extra tooling for keeping configurations DRY and working with multiple modules.
macOS / Linux:
brew install terragrunt
Windows (Scoop):
scoop install terragrunt
Containers and Kubernetes Link to heading
Docker Link to heading
Required for local container development and testing.
macOS:
brew install --cask docker
Windows:
Install Docker Desktop with WSL 2 backend enabled.
kubectl Link to heading
The Kubernetes command-line tool for working with AKS and other clusters.
macOS / Linux:
brew install kubectl
Windows (Scoop):
scoop install kubectl
Helm Link to heading
The package manager for Kubernetes. Used for deploying applications and managing releases on AKS.
macOS / Linux:
brew install helm
Windows (Scoop):
scoop install helm
kubelogin Link to heading
An Azure-specific credential plugin for kubectl that enables Azure AD authentication for AKS clusters.
macOS / Linux:
brew install Azure/kubelogin/kubelogin
Windows (Scoop):
scoop install kubelogin
Source Control and CI/CD Link to heading
Git Link to heading
The foundation of everything. Make sure you have a recent version rather than the OS-bundled one.
macOS / Linux:
brew install git
Windows (Scoop):
scoop install git
GitHub CLI Link to heading
Useful for working with pull requests, issues, and GitHub Actions from the terminal.
macOS / Linux:
brew install gh
Windows (Scoop):
scoop install gh
Azure DevOps CLI Extension Link to heading
If your organization uses Azure DevOps:
az extension add --name azure-devops
az devops configure --defaults organization=https://dev.azure.com/YourOrg project=YourProject
Editors and IDEs Link to heading
Visual Studio Code Link to heading
The go-to editor for cloud work. Excellent Azure, Terraform, and Bicep extensions.
macOS / Linux:
brew install --cask visual-studio-code
Windows (Scoop):
scoop install vscode
Key extensions for Azure architects:
- Azure Account — sign in and manage subscriptions
- Azure Resources — browse and manage resources
- Bicep — language support for Bicep files
- HashiCorp Terraform — language support for Terraform
- YAML — essential for pipelines and Kubernetes manifests
- REST Client — test Azure REST APIs directly from VS Code
- Remote - WSL (Windows) — develop inside WSL from VS Code
Networking and Debugging Link to heading
curl / wget Link to heading
For testing endpoints, downloading scripts, and interacting with Azure REST APIs.
macOS / Linux:
brew install curl wget
Windows (Scoop):
scoop install curl wget
jq Link to heading
A command-line JSON processor. Indispensable when working with Azure CLI output.
macOS / Linux:
brew install jq
Windows (Scoop):
scoop install jq
Azure Storage Explorer Link to heading
A GUI tool for browsing and managing Azure Storage accounts, blobs, queues, and tables.
macOS:
brew install --cask microsoft-azure-storage-explorer
Windows (Scoop):
scoop install storageexplorer
Security and Compliance Link to heading
tfsec / trivy Link to heading
Static analysis for Terraform files to catch security misconfigurations before deployment.
macOS / Linux:
brew install trivy
Windows (Scoop):
scoop install trivy
checkov Link to heading
Policy-as-code scanning for Terraform, Bicep, ARM templates, Kubernetes manifests, and more.
pip install checkov
Azure Cost CLI Link to heading
A command-line tool for quick cost analysis of Azure resources.
dotnet tool install --global azure-cost-cli
Scripting Languages and Runtimes Link to heading
Python Link to heading
Required for many Azure SDKs, automation scripts, and tools like checkov.
macOS / Linux:
brew install python
Windows (Scoop):
scoop install python
.NET SDK Link to heading
Needed for Azure Functions (C#), Azure Cost CLI, and various Microsoft tools.
macOS / Linux:
brew install dotnet
Windows (Scoop):
scoop install dotnet-sdk
Node.js Link to heading
Used by some Azure tools, Azure Functions (JavaScript/TypeScript), and the Azure Static Web Apps CLI.
macOS / Linux:
brew install node
Windows (Scoop):
scoop install nodejs
Putting It All Together Link to heading
Here’s a quick bootstrap script for each platform:
macOS Link to heading
# Install Homebrew (if not already installed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Core Azure tools
brew install azure-cli azure-dev powershell
# IaC
brew install terraform opentofu terragrunt
# Containers and Kubernetes
brew install --cask docker
brew install kubectl helm Azure/kubelogin/kubelogin
# Source control
brew install git gh
# Editors
brew install --cask visual-studio-code
# Utilities
brew install curl wget jq
brew install --cask microsoft-azure-storage-explorer
# Security
brew install trivy
# Runtimes
brew install python dotnet node
# Post-install
az bicep install
pwsh -Command "Install-Module -Name Az -Repository PSGallery -Force"
Windows (Scoop via PowerShell) Link to heading
# Install Scoop
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
scoop bucket add extras
# Core Azure tools
scoop install azure-cli azure-dev
# IaC
scoop install terraform opentofu terragrunt
# Containers and Kubernetes
scoop install kubectl helm kubelogin
# Source control
scoop install git gh
# Editors
scoop install vscode
# Utilities
scoop install curl wget jq storageexplorer
# Security
scoop install trivy
# Runtimes
scoop install python dotnet-sdk nodejs
# Post-install
az bicep install
Install-Module -Name Az -Repository PSGallery -Force
Linux (WSL with Ubuntu) Link to heading
# Update system
sudo apt-get update && sudo apt-get upgrade -y
# Install Homebrew for Linux
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Core Azure tools
brew install azure-cli azure-dev powershell
# IaC
brew install terraform opentofu terragrunt
# Containers and Kubernetes
brew install kubectl helm Azure/kubelogin/kubelogin
# Source control
brew install git gh
# Editors
brew install --cask visual-studio-code
# Utilities
brew install curl wget jq
# Security
brew install trivy
# Runtimes
brew install python dotnet node
# Post-install
az bicep install
pwsh -Command "Install-Module -Name Az -Repository PSGallery -Force"
Final Thoughts Link to heading
A consistent toolchain across platforms eliminates the “works on my machine” problem and makes onboarding new team members straightforward. Using package managers like Homebrew and Scoop means you can version, update, and reproduce your environment with a single script.
Keep your tools current. Run brew upgrade or scoop update * regularly. Azure CLI and Bicep evolve quickly, and staying on the latest version avoids compatibility surprises.
The tools listed here form the baseline. Depending on your specific workload — whether it’s heavy on networking, data, AI, or application development — you may add specialized tools on top. But this foundation will serve you well for the vast majority of Azure architecture work.