Skip to content

Prerequisites

Melvin PETIT edited this page Aug 27, 2026 · 1 revision

Prerequisites

Five tools, one cloud account, one SSH key. Everything runs from Linux, WSL2 included.

Install everything

# Azure CLI
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

# Terraform
wget -O- https://apt.releases.hashicorp.com/gpg \
  | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp.gpg] \
https://apt.releases.hashicorp.com $(lsb_release -cs) main" \
  | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install -y terraform

# Ansible and the OpenStack client, isolated with pipx
sudo apt install -y pipx
pipx install --include-deps ansible
pipx install python-openstackclient
pipx ensurepath && exec $SHELL

pipx matters on Ubuntu 24.04: the system Python is protected, and a plain pip install is refused. It gives each tool its own virtualenv while keeping the command on your PATH.

Check them

az version && terraform version && ansible --version && openstack --version

make preflight runs the same checks plus the ones this lab needs, and it is the fastest way to know you are ready.

An SSH key

[[ -f ~/.ssh/id_rsa.pub ]] || ssh-keygen -t rsa -b 4096

The same public key ends up in two places: on the Azure host, and inside the OpenStack instance the demo creates. That is what makes ssh -J work in one hop from your machine.

An Azure subscription

az login
az account show

Two limits decided the sizing of this lab, and yours may differ:

  • Nested virtualization exists on the Dv3 family and later, on the E and F families, and nowhere else. The B and A series cannot run it, so Nova would fall back to software emulation
  • Trusted Launch disables nested virtualization, and it is the default in the portal. The Terraform stack deliberately leaves the VM on the standard security type

If a policy restricts your subscription, list what it allows and pick a Dv3 or later from that list. Standard_D2s_v3 is the smallest that works: 2 vCPU and 8 GB, which is DevStack's floor.

Cost

You pay per hour of running VM, nothing while it is deallocated. A three hour session costs less than a coffee. The habit to build:

make stop

Stopping the VM from inside Linux does not stop the billing. Only deallocation frees the reserved resources.

Clone this wiki locally