Thursday, April 2, 2015

Workstation Automation, Part 1: Virtualization

Curious about how to efficiently build a workstation to work on a variety of projects using reliable repeatable processes?  Then this post is for you. It is part 1 in a series that I will write about this topic.
There are a variety of hardware workstations that you may be using: a desktop, laptop, maybe two laptops. The OS on these computers could also be of different types: Windows (7,8), Mac OS X, or linux (RedHat,Centos,etc.). We can normalize (or make same) the process of working on projects across these profiles (hardware & OS) with a group of tools designed to work together efficiently. These are virtualization and bootstrap automation tools (or  CLI). Two specific tools in these categories are VirtualBox and Vagrant. There are others, however these serve as working examples for this post. Both tools are open source and free. You can easily download and install them on all the before mentioned profiles (hardware & OS).
Now that you have the tools to create new virtual machines easily you still need to have base image. The base image is the OS of your choosing that you would like available for working on projects. You are not restricted to just one though, you may have multiple projects on different operating systems and you can have base images for each. I use a centos 7 minimum install base image often and it will work well for the purpose of this blog.  The centos 7 minimum image is available to everyone from the online service Atlas. I've uploaded my base image there and made it available to the public.  Atlas is built by Hashicorp, the same makers of Vagrant, additionally having built my own base image I can be confident in the reliability of it being accessible and working.
Now that we have identified tools and a base image. The only final necessary component to get my virtual machine running is to create a "Vagrantfile". The file can be as simple as the following:
----------------- Start File: Vagrantfile ------------------
Vagrant.configure(2) do |config| = "abrooke/centos-7min"
----------------- End File: Vagrantfile -------------------
In the same directory as the before mentioned file. Simply run:
#>   vagrant up
Once the output indicates successful completion the machine will be online and ready to be accessed using SSH. With a properly configured SSH client you will be able to access the virtual machine with the simple command:
#>   vagrant ssh
In the next part in the series we will explore more features of the VagrantFile and configuring the Virtual Machine with Chef.

Wednesday, December 3, 2014

DevOps in 2015

Chris Jackson, CTO of DevOps Services at Rackspace, recently published the article "Will 2015 be the DevOps tipping point?" on A few comments about it follow:

  • Having been in DevOps now for years its hard to see 2015 as a pivotal year in my own career, however I can understand why it may be for DevOps in the industry. I was lucky enough to work for a CTO at Zynx Health in 2012, Mark Long, that believed in the benefits of DevOps back in 2012 when I transitioned into the role of DevOps engineer at Zynx Health. Mark Long is still in the minority according to the article, which states only 7% of CTO drive DevOps.
  • My experience makes it understandable that the article indicates that it is "the operations team that is tasked with implementing and managing the [DevOps] program". My experience reflects this reality in my current role of Lead Systems Engineer at Zynx Health. My team is primarily operation's personnel with DevOps practices and technology as part of our core competencies.

Friday, March 7, 2014

I Participated in a Systems Thinking Panel Discussion

I mentioned at the end of this online panel that I would blog more. No better time to start than now...