Skip to main content

Web server using Azure Virtual Machine

Basic example of an Azure web server accessible over HTTP

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 azure-py-webserver
cd pulumi-examples/azure-py-webserver

This example deploys an Azure Virtual Machine and starts an HTTP server on it.

Prerequisites#

  1. Install Pulumi
  2. Configure Azure credentials
  3. Install Python

Deploying the example#

  1. Create a new stack:

    Terminal window
    pulumi stack init dev
  2. Set the required configuration for this example. This example requires you to supply a username and password to the virtual machine that we are going to create. Note that --secret ensures your password is encrypted safely.

    Terminal window
    pulumi config set azure-native:location westus # any valid Azure region will do
    pulumi config set username webmaster
    pulumi config set password --secret <your-password>
  3. Install dependencies:

    Terminal window
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
  4. Deploy the stack:

    Terminal window
    pulumi up
    Updating (azuredev):
    Type Name Status
    + pulumi:pulumi:Stack azure-py-webserver-azuredev created
    + ├─ azure-native:core:ResourceGroup server created
    + ├─ azure-native:network:VirtualNetwork server-network created
    + ├─ azure-native:network:PublicIp server-ip created
    + ├─ azure-native:network:Subnet server-subnet created
    + ├─ azure-native:network:NetworkInterface server-nic created
    + └─ azure-native:compute:VirtualMachine server-vm created
    Outputs:
    public_ip: "137.117.15.111"
    Resources:
    + 7 created
    Duration: 2m55s
  5. Get the IP address of the newly-created instance from the stack’s outputs:

    Terminal window
    pulumi stack output public_ip
  6. Check to see that your server is now running:

    Terminal window
    curl http://$(pulumi stack output public_ip)
    Hello, World!

Cleaning up#

Once you are finished, you can destroy your stack and remove it to avoid incurring any additional cost:

Terminal window
pulumi destroy
pulumi stack rm

Related

The infrastructure as code platform for any cloud.