Skip to content

Instantly share code, notes, and snippets.

@arnaudmorin
Last active February 12, 2021 16:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arnaudmorin/72bff355d9d42ed9aff8dfecd7f3f362 to your computer and use it in GitHub Desktop.
Save arnaudmorin/72bff355d9d42ed9aff8dfecd7f3f362 to your computer and use it in GitHub Desktop.
boot an instance on openstack
#!/usr/bin/env python
import openstack
import os
import base64
def create_connection():
return openstack.connect(
auth_url=os.environ.get('OS_AUTH_URL'),
project_name=os.environ.get('OS_TENANT_NAME'),
username=os.environ.get('OS_USERNAME'),
password=os.environ.get('OS_PASSWORD'),
region_name=os.environ.get('OS_REGION_NAME'),
user_domain_name='Default',
project_domain_name='Default',
)
def create_server(conn, server_name, userdata):
print("Create Server:")
image = conn.compute.find_image('Debian 10')
flavor = conn.compute.find_flavor('c2-7')
network = conn.network.find_network('Ext-Net')
keypair = conn.compute.find_keypair('arnaud-ovh')
server = conn.compute.create_server(
name=server_name, image_id=image.id, flavor_id=flavor.id,
networks=[{"uuid": network.id}], key_name=keypair.name, user_data=userdata)
server = conn.compute.wait_for_server(server)
print(server.addresses)
userdata = base64.b64encode("#!/bin/bash\ntouch /root/test".encode("utf-8")).decode('utf-8')
conn = create_connection()
create_server(conn, 'test', userdata)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment