Technical musings from an opinionated Platform Engineer/Leader
Install Spinnaker on Ubuntu 16.04LTS in AWS
I encountered a lot of issues installing Spinnaker (1.6.1 and 1.7.x) on Ubuntu in Amazon Web Services. This post is the collection of steps I took to get a demo server with a working Spinnaker and Jenkins installation. I am going to use GitHub and the GitHub Branch Source Plugin from CloudBees in order to trigger my build/bakes. My target flow for the demo is:
- Push a branch/create a pull request with changes (human action)
- Jenkins runs a pipeline via Jenkinsfile to test updates and certify merge
- Merge the pull request to master (human action)
- Jenkins runs a pipeline via Jenkinsfile to test updates and builds a Debian package
- Spinnaker runs a simple Bake and Deploy (red/black) pipeline
This implementation is opinionated and very insecure, but it gives you an easy 10-15 minute commit through deploy demonstration to really open discussions about Spinnaker as a deployment platform for your project or organization.
…Building SuperTux on Ubuntu 16.04
I have a couple roommates (read: children) who recently developed an interest in SuperTux. With 0.4.0 available in the Ubuntu repositories, we were quickly up and running with the core levels and many of the excellent community contributed levels. Eventually, I let it slip that you could create your own levels, and the fun really started. There’s a C# editor that you can run and install on linux via mono. There’s a lot to install, but it’s pretty functional once you have the build dependencies figured out. After some additional digging I found out that the 0.5.0 release candidates include a new embedded editor. While the release candidate editor is still in need of a lot of polish it’s in a reasonable place and requires far fewer dependencies to get up and running. Bonus: you get to play the release candidate game and levels!
…Immutable Infrastructure for Bootstrappers: Building AMIs with Packer
This post is part of series on my implementation of immutable infrastructure for bootstrapped projects. You can find the other posts here:
- Introduction
- An immutable infrastructure virtual machine
- Basic AMI generation with Packer
- Deploying your AMI with Asgard
- Releases, automation, and next steps
If you find this implementation interesting, you will enjoy a book I am writing on this topic: Immutable Infrastructure with Netflix OSS.
Packer
If Packer is a new tool for you, be sure to check out the Introduction from HashiCorp. A basic premise is that you can configure your ‘server’ once, and Packer can output that server in whatever format you desire (AMIs in our case, and potentially virtualboxes for the same config in our development environment. We will work with the same immutable-infrastucture-for-bootstrappers repository, and as we previously mentioned, Packer is already available for use on the Vagrant-configured virtual machine.
…Immutable Infrastructure for Bootstrappers: Asgard and AWS
This post is part of series on my implementation of immutable infrastructure for bootstrapped projects. You can find the other posts here:
- Introduction
- An immutable infrastructure virtual machine
- Basic AMI generation with Packer
- Deploying your AMI with Asgard
- Releases, automation, and next steps
If you find this implementation interesting, you will enjoy a book I am writing on this topic: Immutable Infrastructure with Netflix OSS.
VirtualBox and Vagrant
We need a virtual machine provider and Vagrant for managing the virtual machines. I will be using VirtualBox (4.3.x on Linux) and Vagrant (1.7.x). Install these, and some familiarity with vagrant’s commands (up, provision, ssh, halt, and destroy in particular) will be helpful. I will try to give all the commands explicitly, but I will not spend much time explaining what they are accomplishing.
…Immutable Infrastructure for Bootstrappers
Companies large and small are singing praises for infrastructure as code and immutable infrastructure. Younger companies are using tools around Docker and containers to promote and mandate immutable infrastructure. These are all great, but if you are a lone bootstrapper burning the midnight oil, it does not seem like the end justifies the means (at least not to me). Not only do these tools require constant upkeep, as this domain is so rapidly changing, but there are often subtle and intricate ‘features’ that spring up when particular versions are paired, or on some Linux kernels, or with some file system types, or, or, or. As a developer who spends a lot of time promoting immutable infrastructure on the job, I really wanted to find a practical way to achieve similar results for my bootstrapping world. This meant attention to the following concerns:
…