pip install apache-libcloud
python
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
DRIVER = {
'aws': {'access_key': 'YOUR_ACCESS_KEY', 'secret_key': 'YOUR_SECRET_KEY'},
'azure': {'subscription_id': 'YOUR_SUBSCRIPTION_ID', 'tenant_id': 'YOUR_TENANT_ID', 'key': 'YOUR_SECRET_KEY'}
}
def get_driver_by_name(provider_name):
providers = {'aws': Provider.EC2, 'azure': Provider.AZURE}
return get_driver(providers[provider_name])
def get_cloud_driver(provider_name):
driver = get_driver_by_name(provider_name)
if provider_name in DRIVER:
return driver(**DRIVER[provider_name])
raise Exception('Provider not found')
python
def create_instance():
return node
node = create_instance()
print('Instance created:', node)
python
def list_instances():
return driver.list_nodes()
def stop_instance(node_id):
node = driver.ex_stop_node(node_id)
return node.state
def start_instance(node_id):
node = driver.ex_start_node(node_id)
return node.state
def delete_instance(node_id):
node = driver.destroy_node(node_id)
return node.state
print('All instances:', list_instances())