Michael DeHaan

Month

February 2012

11 posts

Introducing Ansible -- Minimal Distributed SSH

Presenting Ansible.

I think there are too many SSH loop scripts and message bus style control frameworks out there, which is why I wrote another.    

Ansible is heavily inspired by Func, which I co-wrote with Seth Vidal and Adrian Likins.   I like Func a lot, and I learned a lot from working on it, but it doesn’t always fit my parameters — namely I end up chasing issues with M2Crypto or SSL, and I am a bit afraid of my implementation of some of the harrier internals.  

Goals for this project (which is just starting)?

  • Maintain an API centric focus for building applications on top of it
  • Be brain dead simple to use, write, and contribute to.   Currently the core is under 300 lines of code.
  • Require no software to be installed on the remote box for bootstrapping
  • Allow plugins to be written in ANY language
  • Work off SSH & authorized_keys files
  • No new daemons

I think camps are pretty divided about whether folks want an active daemon like funcd and SSL, or something that just caries over existing SSH.   I’ll stay out of that battle and let people pick, but I’m rapidly becoming the fan of the “less moving parts” school.  I think SSHd is pretty ubiquitous and easy to shoehorn in without a security audit.   There are places where either options is better, no doubt. 

IMHO, the best part of Func was that it produced an API that was rapidly usable for developing clever applications — not how it actually operated.   

Anyway, Ansible requires no additional software to be installed on the remote machine, and ships modules to the remote machine automagically.  As I said, modules just speak JSON stdout, so they can be written in any language, even bash.  Bootstrapping?  It doesn’t exist.   

If you are interested, please follow the project on github, where there’s also a lot more documentation.  It will be evolving rapidly over the next few weeks. 

To whet everyone’s appetite, I also plan to build an extra lightweight declarative CMS on top — probably in JSON and YAML, but using declarative backends.   Stay tuned.

Comments welcome!

Update:  Ansible now has a mailing list.

Feb 23, 2012
Animal Intelligence Roundup

Various interesting science articles I’ve found recently, which seems to be a trend:

  • Parrot does addition
  • Crows meta tool use (related but older: Aesop’s crows)
  • Bees wave at hornet
  • Goat kids can develop accents
  • Bowerbirds use forced perspective
Feb 22, 2012
Photojournalism Feeds You Should Be Reading

I’m a big fan of these feeds, and these are some incredible examples:

  • In Focus: 2012 Carnival and Winter Arrives
  • The Big Picture:  Harbin Ice and Snow Festival

I also recommend the Reuters Photographers Blog which also has some excellent writeups behind the photography.

Feb 22, 2012
Datastores/Formats People Claim To Know

Once again, from linkedin, datastores people claim to know:

Read More →

Feb 22, 2012
Systems/Tools People Claim To Know

From linkedin resume counts, X people say they know:

Read More →

Feb 22, 2012
Programming Languages People Claim To Know

From linkedin resume counts, X number of people say they know:

Read More →

Feb 22, 2012
Feb 21, 2012
Feb 20, 2012
Feb 20, 2012
Feb 20, 2012
#photography
Remodelling

michaeldehaan.net is now hosted on Tumblr! Why? Tumblr is awesome, and I happen to like the posting tools much better than Wordpress.

In other news, the photo gallery has a new URL and theme: photos.michaeldehaan.net.

Commenting should now be allowed via disqus and feeds are available through feedburner — if you have been following via RSS you will need to resubscribe.   Look for more frequent updates about tech, more photo blogging, and occasional electronic music diversions.   

Welcome to the new site.

Feb 18, 2012
#meta
Next page →
2012 2013
  • January 1
  • February 2
  • March 1
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
2012 2013
  • January
  • February 11
  • March 4
  • April 7
  • May 6
  • June 1
  • July
  • August 6
  • September 4
  • October 3
  • November 3
  • December