Books

Books, Journals, etc.

Identify, capture and resolve common issues faced by Red Hat Enterprise Linux administrators using best practices and advanced troubleshooting techniques
Packt Publishing, 2015

Talks

Talks, Podcasts, etc.

Episode #143: Tuning Python Web App Performance
Dec 20, 2017 2:10 AM

Articles

Blog articles hosted here

More Posts

Recently there has been a lot of coverage in both tech and non-tech news outlets about internet privacy and how to prevent snooping both from service providers and governments. In this article I am going to show one method of anonymizing internet traffic; using a TLS enabled HTTP/HTTPS Proxy. In this article we will walk through using stunnel to create a TLS tunnel with an instance of TinyProxy on the other side.

CONTINUE READING

In recent articles I covered how I’ve built a Continuous Delivery pipeline for my blog. These articles talk about using Docker to build a container for my blog, using Travis CI to test and build that container, and finally using a Masterless SaltStack configuration to deploy the blog. Once setup, this pipeline enables me to publish new posts by simply managing them within a GitHub repository. The nice thing about this setup is that not only are blog posts managed hands-free.

CONTINUE READING

A few months ago while setting up a few cloud servers to host one of my applications. I started running into an interesting issue while building Docker containers. During the docker build execution my servers ran out of memory causing the Docker build to fail. The servers in question only have about 512MB of RAM and the Docker execution was using the majority of the available memory. My solution to this problem was simple, add a swap file.

CONTINUE READING

Over the past two articles I’ve described building a Continuous Delivery pipeline for my blog (the one you are currently reading). The first article covered packaging the blog into a Docker container and the second covered using Travis CI to build the Docker image and perform automated testing against it. While the first two articles covered quite a bit of the CD pipeline there is one piece missing; automating deployment.

CONTINUE READING

In last months article we discussed “Dockerizing” this blog. What I left out from that article was how I also used Docker Hub’s automatic builds functionality to automatically create a new image every time changes are made to the GitHub Repository which contains the source for this blog. The automatic builds are useful because I can simply make changes to the code or articles within the repository and once pushed, those changes trigger Docker Hub to build an image using the Dockerfile we created in the previous article.

CONTINUE READING

Projects

Open Source Side Projects

Effing Shell Scripts 2

A common sense remote command execution tool inspired by fss and written in Go.

cfdns

CLI tool for manipulating DNS of CloudFlare hosted domains. This tool uses CloudFlare’s v4 API to add, remove, list, or modify DNS records.

Automatron

Automatron is a framework for creating self-healing infrastructure. Simply put, it detects system events & takes action to correct them. It’s like Nagios and Ansible had a baby.

Masterless Salt Base

Quickly bootstrap a generic(ish) Ubuntu server ready to host Docker containers