Skip to main content

Search the Dev Center

Search tutorials, templates, examples, and more.

Web server using OpenStack

A minimal OpenStack Python Pulumi program

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

A minimal example that provisions a Fedora instance and its security group rules on OpenStack.

Prerequisites#

  1. Install Pulumi
  2. Configure Pulumi for OpenStack
  3. Install Python

Deploying the example#

  1. Create a new stack:

    Terminal window
    pulumi stack init
  2. Install dependencies:

    Terminal window
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
  3. Modify __main__.py to include your keypair and image.

  4. Run pulumi up to preview and deploy changes:

    Terminal window
    pulumi up
    Previewing update (dev):
    Type Name Plan
    pulumi:pulumi:Stack pulum-dev
    + ├─ openstack:images:Image fedora create
    + ├─ openstack:compute:Keypair default create
    + ├─ openstack:networking:SecGroupRule secgroupRule1 create
    + ├─ openstack:networking:SecGroupRule secgroupRule2 create
    + ├─ openstack:networking:SecGroupRule secgroupRule3 create
    + └─ openstack:compute:Instance test_fedora create
    Outputs:
    ~ instance_ip: "192.168.0.243" => output<string>
    Resources:
    + 6 to create
    1 unchanged
    Duration: 38s
  5. View the host name and IP address of the instance via stack output:

    Terminal window
    pulumi stack output
    Current stack outputs (1):
    OUTPUT VALUE
    instance_ip 192.168.0.243
  6. Verify that the OpenStack instance exists, by either using the Horizon dashboard or running openstack server list:

    Terminal window
    openstack server list
    +--------------------------------------+-------------+--------+-------------------------------------+--------------------------+----------+
    | ID | Name | Status | Networks | Image | Flavor |
    +--------------------------------------+-------------+--------+-------------------------------------+--------------------------+----------+
    | 8bdf8a6d-ac53-4448-ae09-e2a08ad554a0 | test_fedora | ACTIVE | public=192.168.0.243, 2001:db8::36b | fedora | m1.small |
    +--------------------------------------+-------------+--------+-------------------------------------+--------------------------+----------+

Cleaning up#

Once you’re finished experimenting, 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.