<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    
      <meta name="description" content="Archive: 2014 02">
    

    <meta name="author" content="The Apache Software Foundation">

    
      <meta name="keywords" content="python,libcloud,cloud,cloud computing,rackspace,amazon ec2,cloudfiles,openstack,cloudstack" />
    

    
      <title>Archive: 2014 &raquo; February | Apache Libcloud</title>
    

    <!-- fav icons -->
    <link rel="shortcut icon" href="/images/favicon.png" />
    <link rel="apple-touch-icon" href="/images/apple-touch-icon.png" />
    <link rel="apple-touch-icon-precomposed" href="/images/apple-touch-icon.png" />

    <link href="/blog/atom.xml" type="application/atom+xml" rel="alternate" title="Apache Libcloud Blog Feed" />

    <!-- Facebook OpenGraph tags -->
    <meta content="Apache Libcloud" property="og:site_name">
    
      <meta content="Archive: 2014 &raquo; February" property="og:title">
    

    

    
      <meta content="Archive: 2014 02" property="og:description">
    

    
      <meta content="website" property="og:type">
    

    
      <meta content="https://libcloud.apache.org/blog/archives/2014/02/" property="og:url">
    
    

    

    <link href='/assets/global-ed18a3a42c0009b2b40cccc5a72f38fc.css' rel='stylesheet' type='text/css' />
  </head>

  <body data-spy="scroll" data-target=".sidebar-nav" data-offset="80">
    <nav class="navbar navbar-fixed-top navbar-inverse" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="/"><img src="/images/libcloud_logo.png" class="navbar-logo" /> Apache Libcloud</a>
        </div>
        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav">
            
            
              
              <li ><a href="/" >Home</a></li>
            
              
              <li ><a href="/about.html" >About</a></li>
            
              
              <li ><a href="/getting-started.html" >Quick Start</a></li>
            
              
              <li ><a href="https://libcloud.readthedocs.org/en/stable/" target="_blank">Documentation</a></li>
            
              
              <li ><a href="/downloads.html" >Downloads</a></li>
            
              
              <li ><a href="/community.html" >Community</a></li>
            
              
              <li ><a href="/blog/" >Blog</a></li>
            
          </ul>

          <div class="material-switch pull-right">
              <input id="theme-switch" name="theme-switch" type="checkbox" onclick="modeSwitcher()"/>
              <label for="theme-switch" class="label-default"></label>
              <span id="theme-toggle" class="theme-switch">Dark mode</span>
          </div>

        </div><!-- /.navbar-collapse -->
      </div><!-- /.container -->
    </nav>

    <div class="container main-container">
      

  <div class="post">
  
    <h2><a href="/blog/2014/02/21/libcloud-0-14-and-ikoula.html">Libcloud 0.14.0 and the new Ikoula driver</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Feb 21, 2014</span>

  <div class="post-content">
    <p>Libcloud 0.14.0 was <a href="/blog/2014/01/22/libcloud-0-14-0-released.html">released last month</a>. Among many improvements and new
features, this release also includes a brand new driver for
<a href="http://express.ikoula.co.uk/public-cloud">Ikoula public cloud</a> which is based on the generic <a href="https://libcloud.readthedocs.org/en/latest/compute/drivers/cloudstack.html">CloudStack driver</a>.</p>

<div class="imginline">
  <p><a href="http://express.ikoula.co.uk/public-cloud" target="_blank">
  <img src="/images/posts/2014-02-21-libcloud-0-14-and-ikoula/ikoula.png" class="img-responsive inline" />
  </a></p>
</div>

<p>Folks over at Ikoula wrote a short introductory post about this new driver. The post
is in French, so if you speak French and are interested in using Ikoula driver,
you should check it out - <a href="http://www.ikoula-blog.com/apache_libcloud">Utilisation d’Apache-Libcloud au sein du Cloud
Ikoula</a>.</p>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/articles.html" rel="tag">articles</a>, <a href="/blog/tags/new-features.html" rel="tag">new features</a>, <a href="/blog/tags/cloudstack.html" rel="tag">cloudstack</a>, <a href="/blog/tags/ikoula.html" rel="tag">ikoula</a></p>
    </div>
  </div>
</div>


  <div class="post">
  
    <h2><a href="/blog/2014/02/18/libcloud-0-14-and-google-cloud-platform.html">Libcloud 0.14 and Google Cloud Platform</a></h2>
  
  <span class="post-date-author">By Rick Wright on Feb 18, 2014</span>

  <div class="post-content">
    <p><em>This is a guest post by <a href="https://github.com/wrigri">Rick Wright</a>. Rick is an engineer at Google and
the main contributor to the Libcloud Google Compute Engine driver.</em></p>

<p>As anyone following this blog knows, Libcloud 0.14 was <a href="/blog/2014/01/22/libcloud-0-14-0-released.html">recently released</a>.
Included in this release is new support for the Google Compute Engine service
that was recently made generally available.</p>

<p>The first Libcloud driver for Google Compute Engine was initially released last
summer, and has been continually updated to support new Compute Engine
features. Support for the Compute Engine Load Balancer was also recently added.</p>

<p>Libcloud had previously added support for Google Cloud Storage through the S3
compatibility API.</p>

<p>In this post, we’ll show you how to get up and running with Google Compute
Engine with Libcloud, show you how to create some instances (nodes) and point
you to additional resources. We also show you how you can start up 20
instances in under a minute.</p>

<div class="imginline">
  <p><a href="https://cloud.google.com/" target="_blank">
  <img src="/images/posts/gce/image03.png" class="img-responsive inline" />
  </a></p>
</div>

<h2 id="getting-started">Getting Started</h2>

<p>If you haven’t yet signed up for Google Compute Engine, more information can
be found on the <a href="https://cloud.google.com/">Google Cloud Platform</a> site. We hope that you will look at
the Google Cloud Platform and consider Compute Engine for workloads of any
size.</p>

<p>If you are familiar with Libcloud, using the driver for Compute Engine will
also be familiar to you as nearly all of the standard Libcloud API methods for
Compute and Load Balancing are supported by the Compute Engine drivers.</p>

<h2 id="setting-up-authentication">Setting up Authentication</h2>

<p>Google Compute Engine uses OAuth2 for authentication and Libcloud supports two
different authentication methods for Compute Engine: Service Accounts and
Installed Applications. More information can be found about these options in
the <a href="https://libcloud.readthedocs.org/en/latest/compute/drivers/gce.html">driver documentation</a>, but here is a simple walk-through for getting
your Service Account credentials (note that the Service Account authentication
requires the PyCrypto library):</p>

<p>From the Console (<a href="https://cloud.google.com/console">https://cloud.google.com/console</a>), select your project. When
your project is open, select “APIs &amp; auth” and then “Credentials” as shown
below:</p>

<div class="imginline">
  <p><img src="/images/posts/gce/image01.png" class="img-responsive inline" /></p>
</div>

<p>To create a new Service Account ID, click on “Create New Client ID”</p>

<div class="imginline">
  <p><img src="/images/posts/gce/image04.png" class="img-responsive inline" /></p>
</div>

<p>Select “Service account” and click “Create Client ID”</p>

<div class="imginline">
  <p><img src="/images/posts/gce/image00.png" class="img-responsive inline" /></p>
</div>

<p>This will create and download a PCKS-12 private key to your local machine. You
will need to convert this to a .pem format key. (See additional instructions
in the <a href="https://libcloud.readthedocs.org/en/latest/compute/drivers/gce.html">driver documentation</a>).</p>

<div class="imginline">
  <p><img src="/images/posts/gce/image02.png" class="img-responsive inline" /></p>
</div>

<p>To connect to Compute Engine from Libclould, you will need to provide both the
“Email address” for the service account and the path to the key file.</p>

<h2 id="creating-an-instance">Creating an Instance</h2>

<p>The Compute Engine driver supports the normal Libcloud ways of doing things.
For example, to create the driver you would do something like this:</p>

<pre>
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
Driver = get_driver(Provider.GCE)
gce = Driver('your_service_account_email', 'path_to_pem_file',
             datacenter='us-central1-a',
             project='your_project_id')
</pre>

<p>Then, you may want to get a list of machine sizes or images to use for your
node creation:</p>

<pre>
sizes = gce.list_sizes()
images = gce.list_images()
</pre>

<p>and then filter them to find the correct size/image object to create your
node. For example:</p>

<pre>
size_obj = [s for s in sizes if s.id == 'n1-standard-1'][0]
image_obj = [i for i in images if i.name == 'debian-7'][0]
</pre>

<p>Finally, you would create the node using the create_node() method:</p>

<pre>
new_node = gce.create_node(name='my_node', size=size_obj,
                           image=img_obj)
</pre>

<p>The GCE driver also supports the ability to pass in size/image by name instead
of by object, so you could create your new node like this, without looking up
the sizes/images:</p>

<pre>
new_node = gce.create_node(name='my_node', size='n1-standard-1',
                           image='debian-7')
</pre>

<p>In this case a new node will be created using the “n1-standard-1” machine
type and will use the latest “debian-7” image that is available.</p>

<h2 id="creating-multiple-instances">Creating Multiple Instances</h2>

<p>We have added an extra method to the Compute Engine driver to help in the
creation of multiple instances/nodes in parallel.  This is the
“ex_create_multiple_nodes()” method, and it can be used like this:</p>

<pre>
base_name = 'multiple-nodes'
number = 20
start_time = time.time()
multi_nodes = gce.ex_create_multiple_nodes(
    base_name, 'n1-standard-1', 'debian-7', number)
end_time = time.time()

print('Created the following %s nodes in %.2f seconds' % (
   number, end_time-start_time))

for node in multi_nodes:
   print('   %s' % node.name)
</pre>

<p>Running this gives the following output (timing will likely vary somewhat):</p>

<pre>
Created the following 20 nodes in 35.77 seconds
  multiple-nodes-000
  multiple-nodes-001
  multiple-nodes-002
  multiple-nodes-003
  multiple-nodes-004
  ...
</pre>

<h2 id="onward">Onward</h2>

<p>This post showed you how to get started, and additional example code can be
found in the <a href="https://github.com/apache/libcloud/blob/trunk/demos/gce_demo.py">Libcloud Compute Engine demo code</a>. The demo code can show you
how to use most of the features of the driver, including: Creating disks,
firewalls and addresses; setting tags; attaching and detaching disks and
deleting resources. There is <a href="https://github.com/apache/libcloud/blob/trunk/demos/gce_lb_demo.py">separate demo code</a> for the Load Balancer
functions which shows how to quickly set up 3 web servers with a Load Balancer
controlling the traffic to them. In addition, the driver documentation
contains the documentation for the extra methods that cover nearly all of the
features of the Compute Engine API.</p>

<p>We are excited to be able to contribute to the Libcloud project and hope that
you will find it useful. We like working with Libcloud and have used it as the
basis for contributing code to other open source projects such as <a href="http://ansible.com/">Ansible</a>
and <a href="http://www.saltstack.com/">SaltStack</a>. If you run into problems or find bugs, please
<a href="https://issues.apache.org/jira/browse/LIBCLOUD">report them</a> (or send a <a href="https://github.com/apache/libcloud">pull request</a>) and we will be happy to continue
to fix and enhance the Compute Engine driver in Libcloud.</p>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/articles.html" rel="tag">articles</a>, <a href="/blog/tags/providers.html" rel="tag">providers</a>, <a href="/blog/tags/gce.html" rel="tag">gce</a></p>
    </div>
  </div>
</div>


  <div class="post">
  
    <h2><a href="/blog/2014/02/17/sebastien-goasguen-joins-our-team.html">Sebastien Goasguen (sebgoa) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Feb 17, 2014</span>

  <div class="post-content">
    <p>The Project Management Committee (PMC) for Apache Libcloud has asked Sebastien
Goasguen (sebgoa) to join us as a committer and a PMC member. We are pleased
to announce that he has accepted.</p>

<p>Sebastien is no stranger to the Libcloud project. He has been contributing and
actively participating in the Libcloud community for quite a while now.</p>

<p>On top of that, he is also a PMC member at the Apache CloudStack project and
our local “CloudStack guy”.</p>

<p>We are happy to have him and some direct CloudStack expertise in our team.</p>

  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a>, <a href="/blog/tags/new-pmc-member.html" rel="tag">new pmc member</a></p>
    </div>
  </div>
</div>


  <div class="post">
  
    <h2><a href="/blog/2014/02/14/call-for-participation-in-gsoc-2014.html">Call for Participation in Google Summer of Code 2014</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Feb 14, 2014</span>

  <div class="post-content">
    <div class="imginline">
  <p><a href="/gsoc-2014.html">
  <img src="/images/gsoc/gsoc2014_2.jpg" class="img-responsive inline" />
  </a></p>
</div>

<p>If you would like to participate in Google Summer of Code 2014 and work on
Apache Libcloud, we invite you to read the following blog post for more
information - <a href="http://www.tomaz.me/2014/02/11/libcloud-gsoc-cfp.html">Libcloud Google Summer of Code 2014 Call for Participation</a>.</p>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/gsoc.html" rel="tag">gsoc</a>, <a href="/blog/tags/gsoc2014.html" rel="tag">gsoc2014</a></p>
    </div>
  </div>
</div>


  <div class="post">
  
    <h2><a href="/blog/2014/02/11/libcloud-0-14-1-and-cloudsigma.html">Libcloud 0.14.1 and the new CloudSigma driver</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Feb 11, 2014</span>

  <div class="post-content">
    <p>Libcloud 0.14.1 has been <a href="/blog/2014/02/08/libcloud-0-14-1-released.html">release recently</a>. Among other bug fixes,
improvements and new features, this release also includes a brand new compute
driver for <a href="https://www.cloudsigma.com">CloudSigma</a> API 2.0 with an <a href="https://libcloud.readthedocs.org/en//latest/compute/drivers/cloudsigma.html">extensive documentation</a>.</p>

<div class="imginline">
  <p><a href="https://www.cloudsigma.com" target="_blank">
  <img src="/images/posts/2014-02-11-libcloud-0-14-1-and-cloudsigma/cloudsigma.png" class="img-responsive inline" />
  </a></p>
</div>

<p>If you want to learn more about this new driver, I encourage you to check a guest
post I wrote on the CloudSigma blog which shows some examples of how to use this new
driver - <a href="https://www.cloudsigma.com/2014/02/11/cloudsigma-api-v2-0-is-now-supported-in-libcloud/">CloudSigma API v2.0 is now supported in Libcloud</a>.</p>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/articles.html" rel="tag">articles</a>, <a href="/blog/tags/new-features.html" rel="tag">new features</a></p>
    </div>
  </div>
</div>



<p class="navigation">
  
    
      <span class="alignleft"><a href="/blog/archives/2014/02/page/2/">« Previous Page</a></span>
    
  

  
</p>



      <hr />

      <footer>
        <div class="row">
          <div class="col-lg-12 text-center">
            <div class="footer-links">
  <p><a href="http://www.apache.org/licenses/">License</a> | <a
  href="/security.html">Security</a> | <a
  href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a> |
  <a href="http://www.apache.org/foundation/thanks.html">Thanks</a> |
  <a href="/credits.html">Credits</a> | <a href="/media.html">Media</a>
</div>

<div class="footer-text">
  <p class="">Copyright &copy; 2009-2022 <a href="https://www.apache.org/" target="_blank">The Apache Software Foundation</a></p>
  <p class="">Apache Libcloud, Libcloud, Apache, the Apache feather, and the Apache Libcloud project logo are trademarks of the Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
  <p class="">Site last updated on 2022-03-30 10:16:59 +0000</p>
</div>

          </div>
        </div>
      </footer>

    </div><!-- /.container -->

    <!-- JavaScript -->
    <script src='/assets/global-23549af89e29254587a07d91b7eb9749.js' type='text/javascript'></script>

    

    <script type="text/javascript">
  var _paq = window._paq = window._paq || [];
  /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
  /* We explicitly disable cookie tracking to avoid privacy issues */
  _paq.push(['disableCookies']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://analytics.apache.org/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '7']);
    var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>

  </body>
</html>
