I recently did a presentation at the Cloud Austin meetup titled Docking with Unicorns about new PAAS on the block DEIS. Building out DEIS is quite easy, make more easy by some tight integration they have with Rackspace Cloud. If you’re interested in what deis is go through my slides linked above, and the documentation on their website. If you want to build out an environment to kick the tires a bit, then click ‘Read on’ below and follow me down the rabbit hole.Read on →
I have been having a lot of internal debate about the idea of running more than one service in a docker container. A Docker container is built to run a single process in the foreground and to live for only as long as that process is running. This is great in a utopian world where servers are immutable and sysadmins drink tiki drinks on the beach, however it doesn’t always translate well to the real world.
Examples where you might want to be able to run multiple servers span from the simple use case of running
sshd as well as your application to running a web app such as
wordpress where you might want both
mysql running in the same container.
Wrapping your applications in a supervisor daemon such as
runit seems like a perfect fit for this. All you need to do is install
runit as part of your
dockerfile and then create appropriate service directories for the apps you want to run in the container. I was doing some testing of this when I realized a quirk of
runit which I could exploit for evil.
To start or stop a service with
runit is simply a matter of creating or deleting a symlink in a service directory, so in theory if you could expose that directory to the server hosting the container you could exploit that to start and stop services from outside of the container.
Docker volume mapping allows exactly this!
Below you will find examples of running three services (logstash,elasticsearch,kibana) that make up the
Building applications in a docker.io Dockerfile is relatively simple, but sometimes you want to just install the application exactly as you would normally via already built chef cookbooks. Turns out this is actually pretty simple.
The first thing you’ll need to do is build a container with chef-client and berkshelf installed. You can grab the one I’ve built by running
docker pull paulczar/chef-solo or build one youself from a
Dockerfile that looks a little something like the following…
At DevOps Days Austin @mattray did an Openspace session on Omnibus which is a toolset based around the concept of installing an app and all of it’s prerequisites from source into a directory and then building a package ( either .deb or .rpm ) of that using fpm.
Having battled many times with OS Packages trying to get newer versions of Ruby, or Redis or other software installed and having to hunt down some random package repo or manually build from source this seems like an excellent idea.
To learn the basics I decided to build an omnibus package for fpm which helped me work out the kinks and learn the basics.Read on →
Lately I’ve been doing a lot of prototyping with Vagrant, specifically for a couple of distinct activities:-
- building puppet modules using the excellent puppet sandbox project
- and building RPM packages with FPM.
I realized I was spending a bunch of time flipping back and forth between Vagrant environments and I had no quick way to utilize RPMs built with FPM inside my puppet modules.Read on →
A lot of tech bloggers will write their blog posts in Markdown, convert it to HTML and paste that HTML into their blog of choice and then in the blog’s editor clean it up to suit their blog. This is an excellent way to create easy to read portable documents that can easily be published in multiple formats.
However what if there was a way to skip the second part of that and just create a markdown page, submit it into your source control ( you do use source control right? ) and your blog would automagically update.
In comes Octopress, it’s a framework that wraps around Jekyll which is Github’s blogging engine that powers Github Pages. Essentially you edit Markdown files and Octopress will compile it into a static-html Jekyll blog. This means that your blog will be lightning fast ( no need to run an interpreted language in your web server ) and ultra portable.
Another side benefit is that you can host it for free on Github ( as long as you’re okay with sharing your source … and you should be! ) or for free on Heroku ( don’t have to share your source ) or host it on any simple no frills Apache, LightHTTP, nginx, node.js, etc server.
Here is how I’m porting my blogger site to Octopress hosted on Github Pages. I’m not using any of the fancy Jekyll migration tools as I only have a few posts and it will help me get used to the extended syntax that Octopress uses in Markdown.Read on →
I’ve got an aging VMWare ESXi 4.0 server that needs to be replaced with something a little more modern and flexing. Obviously at home I don’t need all the cool features that licensed VMWare comes with, but I do want more than just the basic free version.
After a few weeks of installing and testing alternatives ( I’d really love to run openstack, but it’s just not worth it at home for a single box ) I’ve settled on Ubuntu 12.10 server running KVM and Openvswitch.
After installing Ubuntu 12.10 I did the following to get KVM up and running… I cribbed this mostly from blog.allanglesit.com.Read on →
I’m migrating from my old VMWare ESXi box to a new machine running Ubuntu 12.10 and KVM. Not wanting to rebuild all of my VMs I set about trying to work out the best way to migrate the VMs.
Steps to make Windows migrate without Bluescreen
If you migrate a windows box it’ll bluescreen due to the shock of so much hardware changing. The following .reg hack will prevent this from happening by opening up access to a bunch of random system drivers. Copy and run the .reg file in your VM before doing any further steps.
Move your VM to shared storage
I mounted an nfs partition to vmware from my freenas box and migrated the data across using the vmware datastore tools. If you don’t have a NAS you could export a directory from your KVM server to achieve the same goal.
To move VMs in ESXi we click on the ESXi server, pick the Configuration tab, click on ‘Storage’ and then right-click on the datastore and select ‘Browse Datastore’. Select the VM folder you wish to move and click the move icon.
Read on →
I have a self hosted wordpress food blog hosted on an old silly domain that I’ve wanted to move away from for a while. I also want to stop paying hosting fees some time soon. Since I’m already looking at moving a lot of my day-to-day activities to the ‘cloud’ it made sense to pick a blogging platform that ties into a major cloud hub. Google’s Blogger was the obvious choice as I’m already using the Google Apps platform for my new domain
Creating a blog on blogger is dead simple. I went ahead and created two: food.paulcz.net for the new food blog and tech.paulcz.net to start journalling random tech things. Transfering the blog content itself is quite simple, however, doing it in a way as to preserve links between posts, from other sites, and teaching the search engines how to find your new site requires a little more trickery.Read on →