A Simple CoreOS and Etcd Cluster

In my idle moments, I contemplate such things as self-assembling infrastructure-in-a-box.  What I mean by that is how do you go from an an empty room (conceptually) to doing useful work for the business in as few steps as possible, as quickly as possible?  What minimum complement of services do you need, and how do you bootstrap it into existence, autonomously?  The goal is to perform as few manual steps as possible to get to a state where you can easily build out the rest of your infrastructure and start deploying applications right away.  Bootstrapping.  Inception.  Whatever.

In this post, at a high level, I want to lay out a simple application platform bootstrapping exercise.  We’re going to make use of a HOT template for Openstack to bring up a three node CoreOS cluster which performs auto-discovery to assemble an etcd cluster.  This is not a tutorial on Openstack.  I am not covering the obvious question of how to get Openstack running.  The point of this exercise is only to lay the foundation for running clustered applications in Docker containers.

Continue reading

Initial Thoughts on Cloud-Init

I have a confession: I only recently discovered the awesome that is cloud-init.  I mean, I’d heard of it, but hadn’t ever really dug in to get to know it.  I most definitely fall into the early-adopter category when it comes to technology, too.  As a freshman in college, I helped build a network kickstart installer, years before tools like Cobbler came on the scene.  After college, I had the good fortune to work somewhere that understood the possibilities with VMWare, and was running a nearly 100% virtualized infrastructure in the ESX 2.0 days.  I first discovered Puppet back in the 0.23 days.  I was using Mcollective in production almost 2 years ago.  I wowed my developers with Vagrant in the pre 1.0 days.

But cloud-init.

Continue reading