Azure VM Scale Sets

View Code Deploy

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

Prerequisites

Running the App

  1. Create a new stack:

    $ pulumi stack init dev
  2. Configure the app deployment.

    $ pulumi config set azure:location westus    # any valid Azure region will do

    Optionally, configure the username and password for the admin user. Otherwise, they will be auto-generated.

    $ pulumi config set adminUser webmaster
    $ pulumi config set adminPassword <your-password> --secret

    Note that --secret ensures your password is encrypted safely.

  3. Login to Azure CLI (you will be prompted to do this during deployment if you forget this step):

    $ az login
  4. Create a Python virtualenv, activate it, and install dependencies:

    This installs the dependent packages needed for our Pulumi program.

    $ python3 -m venv venv
    $ source venv/bin/activate
    $ pip3 install -r requirements.txt
  5. Run pulumi up to preview and deploy changes:

    $ pulumi up
    Previewing update:
    ...
    
    Updating:
    ...
    Resources:
        13 created
    Update duration: 2m19s
  6. Check the domain name of the PIP:

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