blob: 7c79e2875170a3b5200adc9f9a795078466515a0 [file]
import os
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
from libcloud.compute.base import NodeAuthSSHKey
cls = get_driver(Provider.PROFIT_BRICKS)
# Get ProfitBricks credentials from environment variables
pb_username = os.environ.get('PROFITBRICKS_USERNAME')
pb_password = os.environ.get('PROFITBRICKS_PASSWORD')
driver = cls(pb_username, pb_password)
# List available sizes
sizes = driver.list_sizes()
# Medium-size instance
my_size = sizes[1]
datacenters = driver.ex_list_datacenters()
# Looks for existing data centers named 'demo-dc'
desired_dc = [dc for dc in datacenters if dc.name == 'demo-dc']
# Get available HDD public images
images = driver.list_images('HDD')
my_image = None
# Let's choose Ubuntu-16.04 image in us/las region
for img in images:
if ('Ubuntu-16.04-LTS-server' in img.name and
'us/las' == img.extra['location']):
my_image = img
break
node_key = None
# Read SSH key from file
# Specify correct path
with open('/home/user/.ssh/id_rsa.pub', 'r') as f:
node_key = NodeAuthSSHKey(f.read())
f.close()
node = driver.create_node(
name='demo-node',
size=my_size,
ex_cpu_family='INTEL_XEON',
image=my_image,
ex_datacenter=desired_dc[0],
ex_ssh_keys=[node_key]
)
print(node)