From Developer to DevOps: My Story

In late 2014, the sole system administrator for the Star Tribune Digital department (let’s call him John) turned in his two-weeks’ notice. Thus began a panic as we realized we had no idea how our infrastructure worked.

At the time, I was one of two senior software engineers there. I was in the middle of a large refactoring project for the mobile website. John had, thankfully, kept up an internal wiki that at least roughly documented how some of the legacy infrastructure worked. The new infra on AWS was very new and very undocumented, but at least we had a place to start. Continue reading “From Developer to DevOps: My Story”

Fixing the Ansible 2.1 Temporary File Permissions Issue

In Ansible 2.1 and later, Ansible will not allow the creation of world-readable temporary files. It does this for a good reason, but it’s a change from how it was before.

If you’re experiencing this problem, you’ll see an error when trying to become_user other than root, and it’ll look like this:

fatal: [12.34.567.8]: FAILED! => {"failed": true, "msg": "Failed to set permissions on the temporary files Ansible needs to create when becoming an unprivileged user. For information on working around this, see"}

The documentation offers solutions. The one that worked for me was this: add the installation (and enablement) of ACL as part of your common tasks for a given playbook. Everything else will then work behind the scenes to make sure those temporary files are handled securely and silently.

Get Going with Laravel on Docker

This post was updated May 14th, 2016 to significantly rework the tutorial.

Docker is slowly taking over the world of web infrastructure. It makes working with multiple different services easy, and the problem of “works in dev, not in prod” goes away, since you have the same environment on your local machine as you do in the production infra. It also makes things like trying out web apps without deploying them to servers really easy. Ever wanted to just check out a personal demo of, say, WordPress or Ghost? Docker makes that simple. Continue reading “Get Going with Laravel on Docker”