Skip to content

Prerequisites

An active Azure subscription with permission to create:

  • Resource groups
  • Virtual networks and subnets
  • Network security groups
  • Public IP addresses
  • Virtual machines

Install and authenticate the Azure CLI:

Terminal window
# Install (if not present)
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
# Authenticate
az login
# Verify subscription
az account show --query '{name:name, id:id}' -o table

Terraform >= 1.5 is required:

Terminal window
# Verify installation
terraform version
# If not installed, use HashiCorp's APT repository
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.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 terraform

An SSH key pair for VM access:

Terminal window
# Generate if you don't have one
ssh-keygen -t ed25519 -f ~/.ssh/cdn-edge-key -N ""

Your Azure AD account must have User.Read permissions. The deployer identifier (used in resource naming) is automatically derived from your Azure AD profile. For service principal or managed identity authentication, set the deployer Terraform variable explicitly.

If you want real TLS certificates instead of self-signed:

  • A domain name with DNS control
  • Ability to create A records pointing to the Azure Public IP

The URL of the F5 XC HTTP load balancer that this edge node will forward traffic to. This can be configured after deployment — the default NGINX config uses a placeholder that you update in the NGINX configuration.