incubator-libcloud mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ian Kallen <spida...@gmail.com>
Subject Re: [libcloud] 0.3.x goals
Date Thu, 11 Feb 2010 03:53:16 GMT
On 2/10/10 6:18 PM, Paul Querna wrote:
> I believe doing this kind of API would best embody what has made
> libcloud successful, instead of reinventing everything, try to
> normalize what is already out there.  What do you think?
>    

I concur, a provider interface abstraction over configuration management 
is desirable. Ideally, I think the interface would look something like:

def provision_node(node, role):
   ### upcast the bare metal to a defined state
   ### configuration mgt is transparently setup on the node
   ### recipes appropriate to the role are applied

This may be asking libcloud to do too much; not sure if its safe to 
assume that providers have a role concept. The abstraction boundaries 
would need to be driven by the lowest common denominators of their 
models. Under the hood, perhaps the simplest thing possible looks like this:

def provision_cfg_mgt(node, provisioning_script, destination):
   ### assume ssh keys are configured correctly
   # scp provisioning_script node:/path/destination
   # ssh node 'chmod 755 /path/destination; /path/destination > 
/path/provision.log'

Doink. Where provisioning_script is a stub that drives the full setup of 
chef or puppet to put the node into the proper state (or if that's too 
high tech, some homebrewed mess of a shell script, choose your pain 
wisely though).

-Ian


-- 
Ian Kallen
blog: http://www.arachna.com/roller/spidaman
tweetz: http://twitter.com/spidaman
vox: 925.385.8426



Mime
View raw message