Browse All Episodes

Static Sites using AWS S3, CloudFront, and Route 53 (3/5)

Static Sites using AWS S3, CloudFront, and Route 53 (3/5)
Episode #50 - Apr 29, 2015 - 16 min

In this episode, we going to look at an example deployment workflow, for syncing static website files from a local directory, to a remote S3 bucket.

Static Sites using AWS S3, CloudFront, and Route 53 (2/5)

Static Sites using AWS S3, CloudFront, and Route 53 (2/5)
Episode #49 - Apr 17, 2015 - 14 min

In this episode, we will create a S3 bucket to store static website content. We will review the AWS management console at a high level, talk about S3 bucket permissions, along with manual S3 file uploads.

Static Sites using AWS S3, CloudFront, and Route 53 (1/5)

Static Sites using AWS S3, CloudFront, and Route 53 (1/5)
Episode #48 - Apr 09, 2015 - 13 min

In this episode series, I thought we would take a look at hosting static websites on AWS, using S3, CloudFront, and Route 53. The plan is to register a domain, create a simple static site, and have it running on AWS, all for just a few dollars a month.

Zero-downtime Deployments with Ansible (Part 4/4)

Zero-downtime Deployments with Ansible (Part 4/4)
Episode #47 - Apr 02, 2015 - 24 min

In this episode, we will do a zero-downtime rolling website deployment, across a cluster of nginx web nodes, sitting behind a haproxy load balancer. We will use Ansible to orchestrate the deployment in a repeatable and consistent way.

Configuration Management with Ansible (Part 3/4)

Configuration Management with Ansible (Part 3/4)
Episode #46 - Mar 26, 2015 - 28 min

In this episode, we are going create a load balanced web cluster by way of our Vagrant environment. The goal is to demonstrate how Ansible can solve real world problems by building up infrastructure from scratch.

Learning Ansible with Vagrant (Part 2/4)

Learning Ansible with Vagrant (Part 2/4)
Episode #45 - Mar 19, 2015 - 46 min

In this episode, we are going to play around with Ansible via four Vagrant virtual machines. We will install Ansible from scratch, troubleshoot ssh connectivity issues, review configuration files, and try our hand at common commands.

Patching the GHOST glibc gethostbyname CVE-2015-0235 bug

Patching the GHOST glibc gethostbyname CVE-2015-0235 bug
Episode #44 - Jan 28, 2015 - 14 min

In this episode, we are going to be patching CentOS and Debian systems against glibc gethostbyname function bugs. System library security bugs present a special case, where even through you have patched the bug, you are likely still running vulnerable code, unless you reboot.

19 Minutes With Ansible (Part 1/4)

19 Minutes With Ansible (Part 1/4)
Episode #43 - Jan 13, 2015 - 19 min

In this episode series, we will be looking at Ansible, which is an easy to use configuration management and orchestration tool. My goal for this series, is to show you what Ansible is, how it works, and the steps to get going on your own.

Crash Course on Vagrant (revised)

Crash Course on Vagrant (revised)
Episode #42 - Dec 16, 2014 - 22 min

In this episode, I wanted to give you a crash course on what Vagrant is, along with how I use it. Vagrant is my go to tool for launching virtual test environments, and once you start to learn how to use it, you will wonder how you ever lived without it.

CLI Monday: apt-file and yum provides

CLI Monday: apt-file and yum provides
Episode #41 - Dec 02, 2014 - 4 min

In this episode, we are going to look at using apt-file on Ubuntu, and yum provides on CentOS, to see which package provides that file you are missing.

Simple Project Planning for Sysadmins (Part 1 of 3)

Simple Project Planning for Sysadmins (Part 1 of 3)
Episode #40 - Nov 27, 2014 - 11 min

In this episode, we are going to look at a system for managing small projects from start to finish. This episode series has been broken into three logical sections covering: gathering user requirements, planning and executing, and finally sign-off and delivery.

CLI Monday: How to Keep Your SSH Sessions Alive

CLI Monday: How to Keep Your SSH Sessions Alive
Episode #39 - Nov 17, 2014 - 11 min

In this episode, we are go to review a common cause of broken ssh sessions when connecting from home, coffee shops, or hotels. It can be very annoying to be working on something, going to grab a coffee, and coming back to a dropped or frozen ssh connection.

Crash Course on MySQL

Crash Course on MySQL
Episode #38 - Oct 08, 2014 - 23 min

In this episode, we are going to cover common tasks associated with looking after a single MySQL server. We will discuss installing and securing the server, useful debugging techniques, common SQL statements, user access and permissions, and finally backup and restore options.

ZFS on Linux (Part 2 of 2)

ZFS on Linux (Part 2 of 2)
Episode #37 - Sep 10, 2014 - 18 min

In this episode, lets continue our look at ZFS on Linux. In part one, we covered the basic ins and outs of ZFS, so in this episode, lets focus on some of the more advanced filesystem features offered by ZFS.

CLI Monday: column and tr

CLI Monday: column and tr
Episode #36 - Sep 01, 2014 - 4 min

In this episode, we are going to review the column and translate commands. These two command are great at manipulating text, so as an example, we will look at converting log data into an easily read format.

ZFS on Linux (Part 1 of 2)

ZFS on Linux (Part 1 of 2)
Episode #35 - Aug 25, 2014 - 12 min

In part one, of this two part episode, we are going to look at ZFS on Linux. I will cover the basics of what ZFS is, how to create and work with ZFS pools, along with how to recover from common failures modes.

CLI Monday: Python SimpleHTTPServer

CLI Monday: Python SimpleHTTPServer
Episode #34 - Aug 18, 2014 - 4 min

In this episode, I will show you a quick and easy way of serving web content via Pythons SimpleHTTPServer and http.server modules. This can be really useful for quickly sharing files, or testing website content, via a browser to systems on your network.

Git to Puppet Deployment Workflow

Git to Puppet Deployment Workflow
Episode #33 - Aug 15, 2014 - 8 min

In this episode, we will be looking at a Git to Puppet deployment workflow pattern. I want to cover how puppet code gets from your workstation, onto production servers, and the bits in between.

CLI Monday: history

CLI Monday: history
Episode #32 - Aug 11, 2014 - 8 min

In this episode, we are going to cover command history. If you spend any amounts of time at the command prompt, being able to recall complex or obscure command options from the history, should result in a productivity boost.

Introduction to Docker

Introduction to Docker
Episode #31 - Jul 28, 2014 - 16 min

In this episode, we are going to be looking at Docker. I have broken this episode into two sections. First, we will cover what Docker is at a high level and touch on the container workflow. Second, we will look at a live demo of Docker in action.

CLI Monday: lsof

CLI Monday: lsof
Episode #30 - Jul 21, 2014 - 8 min

In this episode, I wanted to show you the lsof command. We are going to review several issues and how the lsof command can be used to troubleshoot what is going on.

Introduction to Amazon Web Services (AWS)

Introduction to Amazon Web Services (AWS)
Episode #29 - Jul 19, 2014 - 9 min

In this episode, I wanted to give you an introduction to Amazon Web Services (commonly referred to as AWS). AWS is one of the premier cloud providers, which is drastically changing the way many think about IT. This introductory episode lays the foundation for more advanced AWS episodes to come.

CLI Monday: cat, grep, awk, sort, and uniq

CLI Monday: cat, grep, awk, sort, and uniq
Episode #28 - Jul 14, 2014 - 9 min

In this episode, I would like to show you a series of commands for reviewing log data, how to extract event counts from that data, and finally how to create sparklines from those counts. This can be extremely useful for pointing you in the right direction while troubleshooting issues.

LVM Linear vs Striped Logical Volumes

LVM Linear vs Striped Logical Volumes
Episode #27 - Jul 08, 2014 - 16 min

In this episode, I wanted to look at the performance characteristics between linear and striped logical volumes using LVM. We will examine what is happening behind the scenes along with some preliminary benchmarks using an AWS i2.8xlarge instance with 8x800GB SSD disks, 244GB of RAM, and 32 virtual cores.

CLI Monday: head, tail, and wc

CLI Monday: head, tail, and wc
Episode #26 - Jul 07, 2014 - 4 min

In this episode, I wanted to introduce a new episode type called CLI Monday. The idea being, we will review useful command line utilities every Monday. Today, we are going to review the head, tail, and wc commands.

Bits Sysadmins Should Know

Bits Sysadmins Should Know
Episode #25 - May 27, 2014

The following is a crash course on what I think goes into the making of a well rounded Linux Sysadmin. This episode is a semi-organized brain dump of bits I have learned throughout my career, which will be used as a type of guide, or road map, for future episodes on this site.

Introduction to Containers on Linux using LXC

Introduction to Containers on Linux using LXC
Episode #24 - Apr 30, 2014 - 15 min

In this episode, I wanted to give you an Introduction to Containers on Linux using LXC. We will look at what Containers are as a concept, why they are useful, and then move onto a live demo of what a Container looks like on a real system using LXC.

Root Privileges and Automated Tasks

Root Privileges and Automated Tasks
Episode #23 - Apr 27, 2014 - 7 min

In this episode, we will discuss giving automated tasks narrow root privileges via the sudo command using the nopasswd option.

Common Archive and Compression Formats

Common Archive and Compression Formats
Episode #22 - Apr 24, 2014 - 11 min

In this episode, I wanted to talk about common archive and compression formats that you are likely to encounter on Linux machines. We will review the differences between archive and compression formats and then focus on how to create and extract these formats using various utilities.

Anatomy of a SQL Injection Attack leading to Code Execution

Anatomy of a SQL Injection Attack leading to Code Execution
Episode #21 - Jan 02, 2014 - 15 min

In this episode, I am going to show you what a SQL injection attack is, along with how it works, and then we will look at several methods to prevent them. We will also look at how a SQL injection attack can reach far beyond the database.

How to write an Incident Report / Postmortem

How to write an Incident Report / Postmortem
Episode #20 - Nov 19, 2013 - 5 min

In this episode, I wanted to look at how to write an Incident Report, also referred to as a Postmortem. Rather than give you something of my own creation, lets look at a Google Incident Report from early 2013, which I think serves as a great example.

Crash Course on Man Pages

Crash Course on Man Pages
Episode #19 - Nov 14, 2013 - 6 min

In this episode, I wanted to look at how we can use the man command to view manual pages for various commands, configuration files, and system libraries.

Managing Iptables with Puppet

Managing Iptables with Puppet
Episode #18 - Nov 12, 2013 - 13 min

In this episode, I wanted to show you the Puppet Labs Firewall module. We are going to use what we learned in episode #8, about Vagrant and Puppet, and apply that to managing iptables firewall rules with Puppet.

Why you should use a Wiki

Why you should use a Wiki
Episode #17 - Nov 07, 2013 - 13 min

In this episode, I wanted to talk about why you should be using a Wiki for keeping track of internal documents, policies and procedures, as well as other information about your infrastructure, then in the latter part of the episode, we will cover how to install MediaWiki on a CentOS 6.4 box.

Hard and Symbolic Links

Hard and Symbolic Links
Episode #16 - Nov 04, 2013 - 10 min

In this episode, I wanted to talk about the differences between hard and symbolic links. We will look at why links are useful, the pros and cons of hard vs symbolic links, then have a look under the hood at inodes and filesystem metadata to see how links actually work.

The IT Disconnect

The IT Disconnect
Episode #15 - Oct 07, 2013 - 9 min

In this episode, I wanted to do something a little different, rather than highlight a piece of technology, I wanted to talk about how IT should be proactively improving communication with other departments within your organization.

Introduction to Linux Control Groups (Cgroups)

Introduction to Linux Control Groups (Cgroups)
Episode #14 - Oct 03, 2013 - 20 min

In this episode we are going to review Control Groups (cgroups), which provide a mechanism for easily managing and monitoring system resources, by partitioning things like cpu time, system memory, disk and network bandwidth, into groups, then assigning tasks to those groups.

Crash Course on Common Commands

Crash Course on Common Commands
Episode #13 - Aug 20, 2013 - 11 min

In this episode, I will give you a crash course on how to use common commands for getting around the filesystem, reviewing running processes, looking at disk utilization, and editing files.

Crash Course on the Filesystem Hierarchy Standard

Crash Course on the Filesystem Hierarchy Standard
Episode #12 - Aug 15, 2013 - 7 min

In this episode, I will give you a crash course on the Filesystem Hierarchy Standard (FHS). The Filesystem Hierarchy Standard gives a great overview of what a UNIX-like filesystem should look like, for example, what directories should exist, and what their contents should be.

Internal Git server with Gitolite

Internal Git server with Gitolite
Episode #11 - Jul 29, 2013 - 13 min

In this episode I wanted to talk about setting up a central Git sever and using Gitolite to manage user access. You might put this on an internal company network, where you and your colleagues can develop together.

Openfire XMPP/Jabber on CentOS

Openfire XMPP/Jabber on CentOS
Episode #10 - Jul 20, 2013 - 14 min

In this episode, I wanted to talk about setting up the Openfire XMPP server on CentOS. Lets say, for example, that you want to improve internal communication around the office, you might want to try an internal XMPP server, because it allows you to quickly chat with colleagues via instant messages.

Yum Versionlock

Yum Versionlock
Episode #9 - Jul 03, 2013 - 4 min

In this episode, we will look at a method for locking rpm packages at a particular version. For example, that you have a package installed on a server, and that a package update is coming, which will likely break your configuration. You would like to somehow exclude this package from getting updated. We will use a yum plugin called versionlock to solve this problem.

Learning Puppet with Vagrant

Learning Puppet with Vagrant
Episode #8 - Jun 25, 2013 - 13 min

In this episode I wanted to introduce you to Puppet. Puppet allows you to quickly automate many sysadmin tasks, like deploying new machines, pushing changes out to existing machines, and helps you verify the configs of existing machines. We will also be setting up development environment for testing and playing around with puppet using Vagrant.

Why you should use a password safe

Why you should use a password safe
Episode #7 - Jun 18, 2013 - 4 min

In this episode we are going to take a look at centralized password management. How a password safe can be a simple and effective tool for you and your team, and why you should be using one.

Locate files by name

Locate files by name
Episode #6 - Jun 09, 2013 - 3 min

In this episode we are going to review the locate and updatedb commands provided by the mlocate package. Locate is a useful command for finding files quickly. We will also look at updatedb.conf, reviewing the PRUNEPATHS option, using this to limit the stress on your servers.

Create a Vagrant box with Veewee

Create a Vagrant box with Veewee
Episode #5 - Jun 05, 2013 - 9 min

In this episode we will create a Vagrant box with Veewee. We will use Veewee to create a working Vagrant SL (Scientific Linux) 6.4 box from a SL 6.3 template. I'll demonstrate the process end-to-end. This process should work with RHEL and CentOS too.

Vagrant

Vagrant
Episode #4 - May 31, 2013 - 5 min

In this episode we will review Vagrant. Vagrant makes it easy to create disposable environments for testing scripts and infrastructure changes.

SystemRescueCd

SystemRescueCd
Episode #3 - May 05, 2013 - 3 min

In this episode we will review SystemRescueCd. SystemRescueCd is a very handy tool for troubleshooting problem. I've used it to re-install grub boot menus, transfer files from nonbootable machines, and a host of other issue. You can also use SystemRescueCd to launch Memtest86+ and DBAN.

RPM Changelog

RPM Changelog
Episode #2 - May 04, 2013 - 3 min

In this episode we will learn how to query and review rpm package information and the changelog history. This can be very helpful in determining whether a bug or CVE security issue has been fixed in a given rpm package.

VirtualBox and CentOS 6.3

VirtualBox and CentOS 6.3
Episode #1 - Apr 19, 2013 - 4 min

In this episode we will use Oracle's VirtualBox to create a CentOS 6.3 virtual machine. Follow along as I download the install media, create a new virtual machine, and install CentOS 6.3. You can also download the CentOS 6.3 virtual machine which was created in this episode.