Google Cloud Platform Blog
Product updates, customer stories, and tips and tricks on Google Cloud Platform
Using Google Compute Engine with open source software
Tuesday, December 10, 2013
With the
recent announcement
that Google Compute Engine is now Generally Available, we thought you might also like to know about the many popular open-source solutions for interacting with Google Compute Engine. And now that Compute Engine support is built right into the tool, it makes it that much easier for you to try it out in a known environment.
For programmatic access with popular programming languages, Google provides a general set of
Client APIs
for accessing Compute Engine, as well as other Google services. However, you may have code or applications written against another language API that makes updating to Google’s client APIs questionable. In that case, you may be interested in the following:
Ruby: The
fog.io cloud API
has had support for Compute Engine since version 1.11.0 back in May. Take a look at the
Compute Engine docs
to get started with Compute Engine and fog. It primarily supports instance operations such as create, destroy and bootstrap.
Python: The Apache
libcloud API project
has been receiving solid support and updates for Compute Engine since July. It supports a broad set of Compute Engine features including instances, disks, networks/firewalls, and load-balancer support. The handy
getting-started demo
gives a good code example of how to use libcloud and Compute Engine.
Java: The
jclouds cloud API
does have Compute Engine support in “labs”. See the
jclouds-labs-google
repository for work being done to provide Compute Engine support and to elevate the lab into jclouds-core.
But perhaps you’re looking for a tool to automate configuration management of your Compute Engine instances. Below is a list of configuration management tools that provide that capability:
PuppetLab’s Puppet
: Puppet has been around since 2005 and has evolved from supporting on-premise and hosted-datacenter support to also managing public cloud infrastructure. With the release of
Puppet Enterprise 3.1
last month, Puppet’s Cloud Provisioner tool now supports Compute Engine. If you’re more comfortable with Puppet’s domain-specific-language manifest files, you can also use the
gce_compute
module available at the forge. Savvy puppet users will also be pleased to see that the next version of
facter
will have extensive
support for Compute Engine
. Puppet’s roots are open-source and it continues to have a thriving open-source community.
Opscode’s Chef
: Chef is another system that’s been around for many years with a strong open-source background and active community. Chef is an automation platform with a modular design that has been extended to support Compute Engine through its
knife-google plugin
. The plugin gives you the power to create new Compute Engine instances, bootstrap them into your Chef environment, and easily manage those instances and their installed software. Chef’s ohai node attribute discovery tool has also been
updated to support Compute Engine instances
. Opscode provides a hosted solution that can make managing your Chef environment easier and more care-free.
SaltStack
: Continuing the vein of configuration management, one of the newer systems gaining in popularity is Salt. One of Salt’s main design goals was to provide a highly scalable and fast data collection and execution framework for system administration. Recently, its cloud provisioner system was extended to support Compute Engine instances and
includes documentation
for getting started.
AnsibleWorks’ Ansible
: Ansible is the newest configuration management solution on this list and it also embraces a unique design approach. Ansible does not utilize a centralized configuration server nor does it require any agents running on the managed instances. Ansible instead relies on SSH to remotely execute scripts on the managed nodes. As of 1.4,
announced recently
, Ansible has wide support for Compute Engine features through an inventory plugin and set of new modules.
Branching out from pure configuration management systems, there are a number of other open-source projects that support Compute Engine.
CoreOS
: CoreOS can best be described as a very thin Linux system that provides just enough “OS” to enable the use of Linux containers. CoreOS is combined with etcd, docker, and systemd to allow you to build cluster-like infrastructure on top of standard physical and virtual machines. Thank you to the fine folks at CoreOS for
building an image to support Compute Engine
.
Docker
: Compute Engine v1 has opened the door for additional operating systems, as well as applications like Docker, which require kernel customizations. Docker is an application for running Linux containers and can now be run on your Compute Engine instances. To get started quickly with docker on Compute Engine, take a look at the
installation instructions
to get up and running with a few simple commands.
Packer
: Packer is one of Mitchell Hashimoto’s projects and its goal is to create machine images across multiple platforms from a single configuration. Compute Engine support is under active development and once complete will allow you to easily create a custom Compute Engine image that you can use as the basis for spinning up your Compute Engine instances. Kelsey Hightower, a primary Packer contributor, is leading the effort for Compute Engine support and if you’d like to help, you can find his work over on
github
.
Vagrant
: Vagrant, another of Mitchell’s projects, is primarily a development tool for easily describing and replicating work environments. It differs a bit from a pure configuration management solution because the primary use-case is to quickly spin up a work environment, make changes, and tear it down again when you’re done. Compute Engine support is enabled by a new custom “provider” and instances can be configured with Vagrant’s “provisioner” plugins. Many thanks to Mitchell for hosting a
new vagrant-google repository
to house the Compute Engine support for Vagrant.
Google is committed to helping support the open-source ecosystem and we welcome your help in improving and extending the tools listed above in addition to any tools you feel should be added to the list.
-Posted by Eric Johnson, Program Manager
Free Trial
GCP Blogs
Big Data & Machine Learning
Kubernetes
GCP Japan Blog
Firebase Blog
Apigee Blog
Popular Posts
Understanding Cloud Pricing
World's largest event dataset now publicly available in BigQuery
A look inside Google’s Data Center Networks
New in Google Cloud Storage: auto-delete, regional buckets and faster uploads
Enter the Andromeda zone - Google Cloud Platform’s latest networking stack
Labels
Announcements
193
Big Data & Machine Learning
134
Compute
271
Containers & Kubernetes
92
CRE
27
Customers
107
Developer Tools & Insights
151
Events
38
Infrastructure
44
Management Tools
87
Networking
43
Open
1
Open Source
135
Partners
102
Pricing
28
Security & Identity
85
Solutions
24
Stackdriver
24
Storage & Databases
164
Weekly Roundups
20
Feed
Subscribe by email
Demonstrate your proficiency to design, build and manage solutions on Google Cloud Platform.
Learn More
Technical questions? Check us out on
Stack Overflow
.
Subscribe to
our monthly newsletter
.
Google
on
Follow @googlecloud
Follow
Follow