Created
September 11, 2019 13:09
-
-
Save meaksh/7153eba4ae6d98c9c6133e6790c7542d to your computer and use it in GitHub Desktop.
List virtual instances from AWS, Azure and Google Compute Engine using libcloud
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#-*- 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