Azure VM scale sets
Basic example of nginx deployed in Azure VM Scale Sets written in Python
This example lives in the pulumi/examples repository. Check out just this directory to use it:
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examplesgit -C pulumi-examples sparse-checkout set classic-azure-py-vm-scalesetcd pulumi-examples/classic-azure-py-vm-scalesetThis example provisions a Scale Set of Linux web servers with nginx deployed, configures auto-scaling based on CPU load, puts a Load Balancer in front of them, and gives it a public IP address.
Prerequisites#
Deploying the example#
-
Create a new stack:
Terminal window pulumi stack init dev -
Log in to the Azure CLI (you will be prompted to do this during deployment if you forget this step):
Terminal window az login -
Configure the app deployment:
Terminal window pulumi config set azure:location westus # any valid Azure region will dopulumi config set azure:subscriptionId <YOUR_SUBSCRIPTION_ID>Optionally, configure the username and password for the admin user. Otherwise, they will be auto-generated. Note that
--secretensures your password is encrypted safely.Terminal window pulumi config set adminUser webmasterpulumi config set adminPassword <your-password> --secret -
Install dependencies:
Terminal window python3 -m venv venvsource venv/bin/activatepip install -r requirements.txt -
Run
pulumi upto preview and deploy changes:Terminal window pulumi upPreviewing update:...Updating:...Resources:13 createdUpdate duration: 2m19s -
Check the domain name of the PIP:
Terminal window pulumi stack output publicAddresscurl http://$(pulumi stack output publicAddress)dsuv3vqbgi.westeurope.cloudapp.azure.com#nginx welcome screen HTML is returned
Cleaning up#
Once you are done, destroy the stack and remove it:
pulumi destroypulumi stack rm