-
Unifi Controller on a Pi with Ansible
Monday, July 16, 2018
I recently moved into a new house (yay!) and had to get my network up and running again. I have been running a full Unifi setup for almost a year now and have been very happy with it. Originally I was running the Unifi controller in a container with the rest of my containerized set up. This was fine, until I moved and needed to have access to the controller, and the network, but didn’t have the entirety of my server infrastructure up and running. Enter the Pi! …
-
Using Multiple Docker Repositories
Sunday, March 4, 2018
Depending on the project I work in a multitude of different Docker repositories across multiple services. This includes using Google, Amazon, and Docker hub. Logging into each one of these services every time I need to push a container is a pain. Fortunately, you can set up your .docker/config.json for each user to be able to seamlessly use multiple repositories. …
-
Migrating to Lambda from Cron Jobs
Wednesday, February 21, 2018
One of my jobs (at least as I see it) is not only to automate infrastructure, but also to consolidate and simplify infrastructure. Too many companies I have worked at have small bits of amazing things, surrounded by loads of convoluted messes left by others. As we move more and more into public cloud infrastructure, in this case AWS, I started thinking about the things I could simplify using AWS only tools. The old way of doing things (as set up by the engineers before me) was to have loads of cron jobs, running across multiple machines, for tasks like taking EBS snapshots. This isn’t a problem when everything is humming along perfectly, but as soon as something breaks, the hunt for where it broke begins. My old strategy involved using the bastion hosts (those that sat on the outside of the VPC for access to VPC machines). But even this could be missed by someone who doesn’t understand my particular way of doing things. This also doesn’t provide consolidated logging either, unless you consume logs from every bastion host into some logging service. Enter Lambda. …
-
Basic CoreOS Setup
Monday, January 15, 2018
Recently I have begun to play with Immutable Hosts, that is host operating systems that are built using a very minimal set of tools, and many times using a containerized method to do so. These hosts include the much loved CoreOS, Project Atomic from RedHat, and RacherOS. CoreOS comes up a lot in the Kubernetes world, so I decided to give it a try. …
-
Google is still good for some things
Friday, November 3, 2017
Everyone loves free things, hence the proliferation of services like GMail and the rest of the Google suite. The problem is, as my old boss used to say, “If you aren’t paying for the product, than you are the product”. Nothing in life is free, and Google has to make money somewhere. It’s no secret that I have a love/hate relationship with Google … I love their services but hate their continuous privacy violations and tracking behaviors (hence my move over to services like ProtonMail and self-hosting). However, this doesn’t make me turn a blind eye to them in general. I’ve been watching the Google Cloud Platform (GCP) product suite for some time, and have recently started playing around with it. It’s nice, compatible with all my tooling (Terraform, Vagrant, etc.), and in most cases cheaper than competing AWS services. Even better is their free trial which, unlike AWS, is much more robust. Their trial, available for one year from your sign up, comes with $300 in credit to use on their services. Which makes it a lot less limited than the AWS “Free Tier” for one year. …
-
Kubernetes, Cluster Auto-Scaling and RBAC
Monday, October 23, 2017
We are currently running our Kubernetes infrastructure in AWS using Kops. This provides a lot of advantages, including being able to easily set and use Auto-Scaling Groups (ASGs). Part of the Kubernetes Autoscaler repository is the cluster autoscaler which watches for events on your Kubernetes cluster and responds by scaling up and down nodes needed to run pods. …
-
Using CircleCI workflows to deploy to Kubernetes
Wednesday, July 5, 2017
As I have been continuing to work with CircleCI’s new 2.0 beta I started looking at the workflows recently. These are like Pipelines in Jenkins, that allow for a series of build/test/deploy steps that can be done either sequentially or in parallel depending upon your use case. To set up a true Continuous Integration using this, and the new Keubernetes cluster, I set up a new job to deploy to Kubernetes. It took a little time digging through some documentation between both CircleCI and Kubernetes, so I wanted to share my findings. …
-
Infrastructure Change - Enter CircleCI
Wednesday, June 28, 2017
In my never ending quest to try all the tools, and also to get things as automated as possible, I have recently started playing with CircleCI. I have used Jenkins quite a bit, and it is really the kitchen-sink when it comes to CI with plug-ins and tools for just about everything. But just a few days ago I had a really weird break within Jenkins that was stopping me from deploying new changes. This, plus the fact that one of the engineers at my current gig was showering CicleCI with praise, made me take a second look at it. …
-
libvirt and Terraform - Finally!
Thursday, June 22, 2017
Some time ago I wrote a post about the unlove that generally befalls libvirt. When I migrated my site over to Hugo I didn’t bring the post along, because it was basically a long winded diatribe about the lack of support in the devops community for libvirt. Although still not officially supported, lots of work has been done to add support to Terraform for using libvirt with the terraform-provider-libvirt project. As of a few weeks ago I got this set up and working, with relative ease I might add, and wanted to share how I got it working. …
-
My Local Kubernetes Cluster
Friday, May 19, 2017
I’m working on a very large project currently at work that involves Kubernetes. I’ve had quite a bit of time to play with it, and I have been very much enjoying it. Although I run a lot of containerized applications on my local network at home, I have up to this point just been either scheduling the containers by hand, or have been using Rancher as my main scheduler. Honestly though, I have been so impressed with Kubernetes that I finally decided that I should spin up a local cluster for me to use in my homelab. Although it looked pretty straight forward, and really in the end it was, I ran into a number of issues that I wanted to touch on. Two caveats before we get started. First, this is only intended for spinning up Kubernetes on your own VMs, Baremetal, or Linode/Digial Ocean type of boxes. There are way better tools out there if you want to install a cluster in AWS (see Kops ). Second, I will be focusing on using CentOS7 as the base operating system. …