feature: use cloud-init to pass in distinguishing data to newly created nodes

Squashed commit of the following:

commit 8746a49c5ffe0400c2376517fa726295d175bddc
Author: Chris Howe <howech@infochimps.com>
Date:   Fri Mar 14 10:29:36 2014 -0500

    Host names can not have _ characters in them.

    Change-Id: I259213815792002325f4f58f1409366eff3d6b28

commit 97e31dea412dbd4da578afaa5ddde2cea321094a
Author: Chris Howe <howech@infochimps.com>
Date:   Thu Mar 13 11:10:19 2014 -0500

    This commit changes the way ironfan pushes identifying information to
    launched instances. Before this was done through a json hash in the user-data
    that was interpreted by custom code in /etc/chef/client.rb. With this change,
    we make use of an already existing package on ubuntu cloud images called
    cloud-init, which deploys our identifying data in a more standard way. Additionally,
    it handles setting the machine's hostname early on in the boot process.

    Change-Id: I114b98607991072e9c33d00cb307f9921d5bcf4c

Change-Id: Ibc9b73ffca6c615389fa96b437575b2876b10f0e
feature: adding openstack and static cloud support

This change sets up basic ironfan features for use with an openstack cloud, as well as adding a fake cloud provider called "static" that lets you specify (normally) cloud-discoverable parameters directly in the cluster definition.

Squashed commit of the following:

commit a80592a2adf35ca6db3821c2b7897b9e6dad603b
Merge: b4149c9 1572b76
Author: Chris Howe <howech@infochimps.com>
Date:   Mon Mar 10 13:12:17 2014 -0500

    Merge branch 'master' of github.com:howech/ironfan into 20140310-feature-openstack-support

    Conflicts:
    	Gemfile
    	Gemfile.lock
    	ironfan.gemspec
    	lib/ironfan/dsl/component.rb

commit 1572b764e64f0f90a83ef380dfdd15e89d08f04e
Merge: 1925e5e 5edcf9a
Author: Chris Howe <chris@howeville.com>
Date:   Tue Feb 25 10:58:47 2014 -0600

    Merge pull request #4 from erikmack/master

    display floating IP's, also bump excon

commit 1925e5e84943cb523877f5e097dbe79db88b4277
Merge: 5a18c58 be86033
Author: Chris Howe <chris@howeville.com>
Date:   Wed Feb 19 15:06:55 2014 -0600

    Merge pull request #3 from howech/static-cloud

    Static cloud

commit be860331599c6071c1f124964be44bb667fddaea
Author: Chris Howe <howech@infochimps.com>
Date:   Wed Feb 19 14:58:54 2014 -0600

    minor changes to help the world work better

commit 5edcf9abb98d1fcf671f1129bbd5f5e41f3b691a
Author: Erik Mackdanz <erik@infochimps.com>
Date:   Wed Feb 19 14:49:15 2014 -0600

    Bump excon dep

commit fe78a40f13bc789cd99f19199d7c14ca28f6aa18
Author: Erik Mackdanz <erik@infochimps.com>
Date:   Wed Feb 19 12:56:44 2014 -0600

    Display floating IP address in public IP fields

commit 5a18c585d6a56b66faea1b6bf0cd39099a4f0b7e
Merge: 79f5289 bb88ae4
Author: Chris Howe <chris@howeville.com>
Date:   Wed Feb 19 12:28:19 2014 -0600

    Merge pull request #2 from erikmack/master

    Factor out cloud-specific security group code

commit 06c92dd83845b9ef7f38669f26c86262ed01c78a
Author: Chris Howe <howech@infochimps.com>
Date:   Fri Feb 7 11:56:40 2014 -0600

    Added a non-cloud cloud provider called 'static'

commit 79f52890cc939e7c83ee8dc4e7d2851302a9bbde
Author: Chris Howe <howech@infochimps.com>
Date:   Wed Jan 29 16:05:59 2014 -0600

    Added elastic ip support for openstack. Shored up public ip address code.

commit bb88ae4bae5baae21678d6cfc4acded28cb37480
Author: Erik Mackdanz <erik@infochimps.com>
Date:   Tue Jan 28 16:33:16 2014 -0600

    Factor out cloud-specific security group code

commit b5591dcaa5f6a1797386a9064d8dc2d81f6ceb93
Author: Chris Howe <howech@infochimps.com>
Date:   Mon Jan 27 13:00:54 2014 -0600

    machine state tweaks for openstack

commit 353862f105cb93966a35feb54ed6edbd8b762a28
Author: Chris Howe <howech@infochimps.com>
Date:   Fri Jan 17 15:39:20 2014 -0600

    Fixed an unintended edit

    :Fixed an unintende

commit dbd9f67af34d5015560f472875e6064f2dd3851a
Author: Chris Howe <howech@infochimps.com>
Date:   Fri Jan 17 14:37:48 2014 -0600

    changed wait for ssh behavior to resect ssh rules

commit 0ed441a6846109775c868da05b23b8f158703260
Author: Chris Howe <howech@infochimps.com>
Date:   Fri Jan 17 11:27:01 2014 -0600

    changed cluster and facet groups to use server.security_group instead of cloud.security group

commit c72a46638eec589f1deecebf956f6ff2e39ea4dc
Author: Chris Howe <howech@infochimps.com>
Date:   Thu Jan 16 16:35:13 2014 -0600

    Added a security_groups container to dsl/compute, and changed providers to respect both cloud defined and compute defined security groups.

commit 610cf62d5310bdc583b543bd3fdc120a9ac8b9a5
Merge: 6f99623 1b82f8f
Author: Chris Howe <chris@howeville.com>
Date:   Tue Jan 14 11:22:42 2014 -0800

    Merge pull request #1 from erikmack/master

    Make the DNS search domain configurable at the cloud layer.

commit 1b82f8f96f3c539a6d96afc05833c3677e51256e
Author: Erik Mackdanz <erik@infochimps.com>
Date:   Tue Jan 14 12:46:56 2014 -0600

    Make the DNS search domain configurable at the cloud layer.

    The NFS server will perform a reverse DNS query on any clients
    that try to connect.  Only clients whose reverse DNS response
    matches this domain are allowed to connect.

commit 6f99623aaeddc12cb9aad7ea320da4186c7221a9
Author: Chris Howe <howech@infochimps.com>
Date:   Mon Jan 13 10:15:17 2014 -0600

    fixed security groups for openstack

commit cd8f930ae70a8b9cbb5c6d1e8af09e72bd313c75
Author: Chris Howe <howech@infochimps.com>
Date:   Sun Jan 12 10:01:34 2014 -0600

    Added some better statuses.
    Changed the default to actually wait for ssh ports.

commit bee2a0d2ddc495990bf8fafc9250b39d3a4f50c0
Author: Chris Howe <howech@infochimps.com>
Date:   Fri Jan 10 04:51:34 2014 +0000

    fixed a keypair bug

commit 8788ccfc990227c144c04665e7c2e48cb90e2879
Author: Chris Howe <howech@infochimps.com>
Date:   Thu Jan 9 19:34:01 2014 +0000

    better support for public/private ip address

commit e92811a4d3259e048196f8dc10eed076c7233ee5
Author: Chris Howe <howech@infochimps.com>
Date:   Thu Jan 9 19:32:57 2014 +0000

    better support for public/private ip address

commit f756cce6b87baa753efd7fd6f81dc970bca78ab7
Author: Chris Howe <howech@infochimps.com>
Date:   Wed Jan 8 15:45:44 2014 +0000

    Added basic support for an openstack cloud provider.

Change-Id: If34e82013bdb321d8114d6a507ef84df3567b9ed
Merge "feature: use cloud-init to pass in distinguishing data to newly created nodes"