Skip to content

Instantly share code, notes, and snippets.

@meaksh
Created September 11, 2019 13:09
Show Gist options
  • Save meaksh/7153eba4ae6d98c9c6133e6790c7542d to your computer and use it in GitHub Desktop.
Save meaksh/7153eba4ae6d98c9c6133e6790c7542d to your computer and use it in GitHub Desktop.
List virtual instances from AWS, Azure and Google Compute Engine using libcloud
#-*- coding: utf8 -*-
# AWS related variables
AWS_ACCESS_KEY_ID = "EXAMPLE"
AWS_SECRET_ACCESS_KEY = "EXAMPLE"
AWS_REGION = "us-east-2"
# Azure related variables
AZURE_SUBSCRIPTION_ID = "EXAMPLE"
AZURE_APPLICATION_ID = "EXAMPLE"
AZURE_TENANT_ID = "EXAMPLE"
AZURE_SECRET_KEY = "EXAMPLE"
# GCE related variables
GOOGLE_SERVICE_ACCOUNT_EMAIL = "EXAMPLE"
GOOGLE_CERT_PATH = "/foo/bar/example.json"
GOOGLE_ZONE = "us-central1-a"
GOOGLE_PROJECT_ID = "EXAMPLE"
# Import
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
# List Google Compute Engine virtual machines
cls = get_driver(Provider.GCE)
driver = cls(GOOGLE_SERVICE_ACCOUNT_EMAIL, GOOGLE_CERT_PATH, datacenter=GOOGLE_ZONE, project=GOOGLE_PROJECT_ID)
nodes = driver.list_nodes()
print ("Listing Google Compute Engine virtual machines...")
for node in nodes:
print ("{} - {} - {}".format(node.id, node.name, node.state))
print()
# List AWS virtual machines
cls = get_driver(Provider.EC2)
driver = cls(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, region=AWS_REGION)
nodes = driver.list_nodes()
print ("Listing AWS virtual machines...")
for node in nodes:
print ("{} - {} - {}".format(node.id, node.name, node.state))
print()
# List Azure virtual machines
cls = get_driver(Provider.AZURE_ARM)
driver = cls(tenant_id=AZURE_TENANT_ID, subscription_id=AZURE_SUBSCRIPTION_ID,
key=AZURE_APPLICATION_ID, secret=AZURE_SECRET_KEY)
nodes = driver.list_nodes()
print ("Listing Azure (classic) virtual machines...")
for node in nodes:
print ("{} - {} - {}".format(node.id, node.name, node.state))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment