Skip to main content

Search the Dev Center

Search tutorials, templates, examples, and more.

Azure VM scale sets

Basic example of nginx deployed in Azure VM Scale Sets

This example lives in the pulumi/examples repository. Check out just this directory to use it:

Get started with this example
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examples
git -C pulumi-examples sparse-checkout set classic-azure-ts-vm-scaleset
cd pulumi-examples/classic-azure-ts-vm-scaleset

This example provisions a Scale Set of Linux web servers with nginx deployed, configures the auto-scaling based on CPU load, puts a Load Balancer in front of them, and gives it a public IP address.

Prerequisites#

  1. Install Pulumi
  2. Configure Azure credentials
  3. Install Node.js

Deploying the example#

  1. Create a new stack:

    Terminal window
    pulumi stack init dev
  2. Log in to the Azure CLI (you will be prompted to do this during deployment if you forget this step):

    Terminal window
    az login
  3. Configure the deployment:

    Terminal window
    pulumi config set azure:location westus # any valid Azure region will do
    pulumi 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 --secret ensures your password is encrypted safely.

    Terminal window
    pulumi config set adminUser webmaster
    pulumi config set adminPassword <your-password> --secret
  4. Install dependencies:

    Terminal window
    npm install
  5. Deploy the stack:

    Terminal window
    pulumi up
    Previewing update:
    ...
    Updating:
    ...
    Resources:
    13 created
    Update duration: 2m19s
  6. Check the domain name of the public IP:

    Terminal window
    pulumi stack output publicAddress
    curl http://$(pulumi stack output publicAddress)
    dsuv3vqbgi.westeurope.cloudapp.azure.com
    #nginx welcome screen HTML is returned

Cleaning up#

Once you are done, you can destroy all of the resources, and the stack:

Terminal window
pulumi destroy
pulumi stack rm

Related

The infrastructure as code platform for any cloud.