Google Cloud Load Balancer Component Diagrams


A Google Cloud load balancer is not a single thing. It is made of many different components that all work together to provide regional or global load balancing to your applications.

What follows are some quick diagrams I have created to better understand how all of the components that make up the various Google Cloud load balancers work together.

Continue reading...

Installing Ubuntu 18.04 LTS on a Lenovo ThinkPad X1 Carbon Gen 6

• Updated January 13, 2019


I have never used a Linux distribution as my primary operating system. After using OS X, eventually renamed to macOS, for 13 years and then ChromeOS for 2 years as my primary operating systems, I decided it was time to try something new. So, I purchased a Lenovo ThinkPad X1 Carbon Gen 6 and installed Ubuntu 18.04 LTS.

Continue reading...

Install a Samsung 970 EVO M.2 SSD on an MSI GS65 Stealth Thin

• Updated January 10, 2019


In a previous post, I stepped through how to do a clean install of Windows 10, drivers, and utilities on an MSI GS65 Stealth Thin. In this post, I will step through the process I took to install a Samsung 970 EVO M.2 SSD into the second M.2 SSD slot.

Continue reading...

Transform Stackdriver IAM Logs with Cloud Functions and Export with Cloud Pub/Sub

• Updated September 24, 2018


Stackdriver Logging makes it easy to export Admin Activity logs to BigQuery, Cloud Storage, or Cloud Pub/Sub.

Cloud Pub/Sub is typically used to export logs as messages to an external system such as Splunk. Configuring this can be done using the GCP Console.

Continue reading...

Google Cloud HTTP(S) Global Load Balancer Redirect HTTP to HTTPS Demo

• Updated January 14, 2019


A common configuration for any web serving infrastructure is to redirect all HTTP requests to HTTPS. Because a Google Cloud HTTP(S) Global Load Balancer is a globally available resource comprised of many software defined networking components, configuring this, despite the end result being the same, works a bit differently than what you might be used to.

Continue reading...

Python Reference Code Snippets


Similar to the command cheat sheets I publish, this post will serve as a quick reference for short and simple Python code snippets I have used in prior projects.

Continue reading...

Clean Install of Windows 10, Drivers, and Utilities on an MSI GS65 Stealth Thin

• Updated January 13, 2019


I recently purchased an MSI GS65 Stealth Thin 8RE, and I immediately wanted to do a clean install of Windows 10. The reasons for wanting to do a clean install of Windows 10 are threefold:

  1. Have a better understanding of what is installed on my computer
  2. Remove the bloatware that usually comes pre-installed on Windows computers
  3. Reclaim storage space by removing the data and recovery partitions setup by the manufacturer

Continue reading...

awk Commands Cheat Sheet

• Updated January 10, 2019


awk - which is not an acronym for anything other than the first letter in the three creator’s last names - is a text processor and is included with practically every Unix-like system. It has its own programming language that can be used to parse through text line by line. It has no problem parsing through a large amount of text data that other programs might choke on.

Continue reading...

Use Microdata to Improve Your Snippets in Google Search Results


Lately I have been trying to find new ways to make all my blogs posts more relevant in Google Search Results. One major thing I have neglected to pay attention to since the inception of this blog was how my blog post snippets look in Google Search Results.

Continue reading...

ChromeOS Keyboard and Trackpad Shortcuts Cheat Sheet

• Updated May 15, 2018


For over a year I have used ChromeOS on an HP Chromebook 13, and more recently a Google Pixelbook, as my work operating system. I was apprehensive at first to use a Chromebook after using Mac laptops personally and professionally for over 10 years. However, I have been pleasantly surprised with ChromeOS because of its simplicity, cloud integrations, ease of updates, and I have started using it more and more over macOS.

Continue reading...

Find All Shared Files in Google Drive with a Python Script

• Updated October 18, 2018


Google Drive makes it very easy to share files. You can easily and securely share files to anyone with a Google account or to anyone else by creating a shareable link that is accessible to anyone that knows the link. The shareable link contains a 33 character random string, so it’s very difficult to guess the URL if you are worried about someone other than your intended recipient looking at the shared file.

Continue reading...

Chromecast High Pitched and Distorted Audio


I am a big fan of Google’s Chromecast. I really like having a dumb device attached to an unfortunately not dumb TV that is entirely controlled via a smart phone. It keeps the number of remotes to a minimum, and it allows anyone on your network to easily watch their own content. I rarely have troubles casting to a Chromecast except when using particular mobile apps that do not implement the Chromecast APIs properly.

Continue reading...

Deploy a Three Tier Web Application to Kubernetes

• Updated December 17, 2018


Multi-tier architectures are a common way to design web applications:

  1. A frontend - presentation - tier which provides the user interface
  2. An application - logic - tier where the processing happens
  3. A backend - data - tier where different storage technologies run

The different tiers could be deployed to a single virtual machine. Configuration management tools such as Ansible, Salt, Chef, or Puppet could be used to automate the deployment process. However, if the web application needs to start handling more traffic, it is only a matter of time before the resources of that single virtual machine are consumed. The single virtual machine could be scaled up by adding more CPU, RAM, and storage, but there is usually an upper limit to doing that.

Continue reading...

Beginning to Understand Docker and Kubernetes

• Updated October 21, 2018


If you are just getting started with containers and container orchestration, it can be difficult to focus on what to learn with all the different technologies available. It is important to understand the basics so you can build your foundational knowledge.

Continue reading...

Use Google App Engine and Golang to Host a Static Website with Same Domain Redirects

• Updated January 10, 2019


There are several inexpensive ways to host a static website generated with a static site generator like Jekyll, Hugo, or Pelican:

This entire blog is statically generated using Jekyll. However, I am unable to use any of the options above, because, over this blog’s lifetime, I have changed domain names, changed URL schemes, and renamed posts, and I want to keep alive all of the old URLs.

Continue reading...

curl Commands Cheat Sheet

• Updated May 3, 2018


Anyone involved with web development, web application programming, creating REST APIs, or interfacing with REST APIs is going to have the curl command in their tool belt. It is an extremely versatile tool that can talk to many different protocols.

Continue reading...

Use Google App Engine and Python for Inexpensive Domain Redirects

• Updated January 10, 2019


This blog has existed under a few domain names: workingconfig.com, thornelaboratories.net, and, now, thornelabs.net. workingconfig.com didn’t exist for very long, and never had many - if any - backlinks to it; it didn’t make sense to keep those URLs alive. However, thornelaboratories.net did exist for a longer period of time, and it had URLs I wanted to keep alive.

Continue reading...

rpm Commands Cheat Sheet


The yum command, and now the newer dnf command, typically provide all of the functionality needed to manage packages on RPM-based Linux distributions. However, sometimes you just need to use the rpm command to fix a problem or get a piece of information about a package yum or dnf might not provide.

Continue reading...

Website Development Tools and Resources

• Updated September 3, 2018


I have always preferred web development. I think it is due to how quickly content can be published and made available to the world.

There are an endless number of tools and resources available for web developers. This post aggregates some of the tools and resources I have used throughout my projects.

Continue reading...

Bootstrap Resources


Bootstrap is a popular HTML, CSS, and Javascript frontend framework to quickly develop clean, responsive, and well layed out websites. I have used Bootstrap in every web-based project I have started because it makes styling and placing of web objects easy and straightforward.

Continue reading...

Resolve Google Cloud API oauth2 cannot fetch token invalid_grant Error

• Updated January 10, 2019


While trying to generate Let’s Encrypt SSL certificates with lego and gcloud DNS, I encountered an error that would not allow me to obtain a certificate.

Continue reading...

Create Let's Encrypt SSL Certificates with lego, DNS Challenge, and Google Cloud DNS

• Updated January 10, 2019


Since it was released to the world, Let’s Encrypt has been a boon for anyone wanting to secure their website or web application with TLS. A lot of work has been, and continues to be, done to provide HTTPS for free to the masses.

Because Let’s Encrypt is an open certificate authority and provides an API to create, renew, and revoke SSL certificates, anyone can create tools to make a historically cumbersome and difficult process more efficient and easier.

Continue reading...

Kickstart CentOS 7 with eth0 Instead of Predictable Network Interface Names

• Updated September 21, 2016


By default, CentOS 7 will kickstart and boot using predictable network interface names. This is useful when provisioning and using similar bare metal servers, but it isn’t very useful when provisioning and using disparate bare metal servers and virtual machines.

Continue reading...

Issues Connecting External Hard Drives to a Retina MacBook with USB-C

• Updated July 28, 2016


As of OS X 10.11.4 and .5, not sure which, I have issues connecting external hard drives to an Early-2015, 12-inch, retina MacBook. I suspect it has something to do with USB-C or OS X’s USB drivers. Apple’s OS X El Capitan 10.11.4 release notes reference updates to USB audio devices and Apple’s USB-C adapters.

Continue reading...

parted Commands Cheat Sheet

• Updated January 10, 2019


Linux users have used fdisk for as long as can be remembered to partition their hard disks. However, as large hard disks have become more and more prevalent, fdisk can no longer be used because it has a 2 TB partition limit. Luckily, parted has been around for a long time and can be used to label and partition any modern sized hard disk.

Continue reading...

Using siege to Load Test Your Website and API

• Updated November 18, 2016


ab, Apache Bench, is often used to load test websites, but I didn’t find it extensible enough for my needs.

Unless an unofficial patch is applied, ab cannot simulate a real person by going to random URLs over a specified period of time. This is where siege comes in.

Continue reading...

A Simple, Secure, Ephemeral Way to Share Passwords

• Updated June 20, 2017


My job frequently requires me to distribute passwords to people. Those people could be coworkers or employees from another company or organization. Passwords are something that need to be transmitted securely, but I didn’t have a simple, secure way to do this.

Continue reading...

find Commands Cheat Sheet

• Updated November 24, 2016


find is an extremely powerful command. It not only finds your files and directories, it can be combined with other shell commands to perform actions on those found files and directories.

Continue reading...

sed Commands Cheat Sheet

• Updated January 10, 2019


sed is an extremely powerful stream editor. The web is full of useful sed one liners.

This post will be an ever growing list of sed one liners I have found useful.

Continue reading...

Transfer Files and Directories Containing Spaces Using scp

• Updated January 21, 2019


If you have ever used scp to transfer files and/or directories containing spaces, you have problem encountered a lot of annoying errors.

Continue reading...

Use the OpenStack swift Command with Rackspace Cloud Files

• Updated December 6, 2015


Rackspace Cloud Files is, and has always been, powered by OpenStack Swift.

The easiest way to interface with Rackspace Cloud Files is through the web portal or third-party clients such as Cyberduck.

Continue reading...

Install and Configure Cobbler on Ubuntu 14.04

• Updated September 3, 2018


Cobbler has always been my goto for provisioning bare metal servers. This is due in large part to its ability to provision CentOS, RHEL, Ubuntu, and Debian easily and quickly.

This post will cover setting up Cobbler on Ubuntu 14.04 and how to provision a server with Ubuntu Server 14.04.

Continue reading...

Debian/Ubuntu Preseed Documentation and Working Examples

• Updated June 2, 2018


Debian/Ubuntu’s Preseed is not the easiest thing to understand. Having used Red Hat/CentOS Kickstart Profiles for so long, trying to setup a Preseed file for the first time was an extremely uninviting process.

Ubuntu has support for using Kickstart Profiles, but it isn’t as full featured as Preseed, and I have encountered plenty of edge cases where Kickstart Profiles do not work for provisioning Ubuntu systems.

I currently spend a lot more time with Ubuntu than Red Hat or CentOS, so all I can do is try to better understand Preseed.

Continue reading...

Create a Bootable Ubuntu USB Drive in OS X

• Updated July 5, 2017


Ubuntu has a great set of instructions on creating a bootable USB drive in Mac OS X, but they have an additional step I found not to be needed: there’s no need to convert the Ubuntu ISO to an IMG file. You can simply download the Ubuntu ISO and use dd to copy it to a USB drive.

Continue reading...

Nostalgic Ambient Noise

• Updated May 8, 2017


I’m on a computer far too much. Most of the time I have music, a TV show, or a movie playing in the background. The ambient noise helps me focus. However, sometimes it’s difficult to focus with conversation or singing in the background.

It’s easy to find ambient noise loops of the ocean, wind, crowds, etc., but I wanted something a bit more nostalgic.

Continue reading...

VirtualBox Commands Cheat Sheet

• Updated July 21, 2016


VirtualBox has always been the go-to piece of software to spin up virtual machines on your workstation.

More often than not, you will work with VirtualBox using its GUI. However, for those occasions where you are SSH’ing into a remote workstation running VirtualBox, it is often easier to work with it using the command line instead of forwarding X.

This post will be an ever growing list of useful VirtualBox commands.

Continue reading...

Install, Configure, and Use minidlna on OS X Yosemite

• Updated January 10, 2019


Sony finally released a DLNA media player for the PlayStation 4 on June 16, 2015. I don’t have a lot of streamable media, but what I do have is stored on my laptop.

I have used Plex in the past, but it is overly complicated and “heavy” for my needs. I wanted a light weight DLNA server that could be daemonized and point to a media directory. minidlna turned out to be the answer.

Continue reading...

ffmpeg Commands Cheat Sheet

• Updated November 29, 2015


ffmpeg is the swiss army knife of video and audio processing tools.

This post will be an ever growing list of ffmpeg commands I have found useful.

Continue reading...

Sort of Turn Off Safari's Two Finger Swipe Animation


I have never liked Safari’s two finger swipe back animation. It is unnecessary and slow, and forces the previous web page to be reloaded (this particular part will change in OS X El Capitan). Most people’s internet connections will load a web page faster than the animation can complete, so it just adds unnecessary waiting to web browsing.

Continue reading...

OS X Yosemite SendRawHCICommand EnqueueRequestForController

• Updated January 21, 2019


The Console application in OS X contains a lot of system logs, and, lately, I have been noticing a lot of a particular error message.

Continue reading...

Wireless Laptop to Wireless Laptop Real World Throughput Benchmarks

• Updated June 3, 2016


More and more devices are becoming wireless. It isn’t unheard of for one person to be carrying three or more wireless devices on them at one time: a phone, a tablet, a laptop, and, more recently, a watch.

There are plenty of benchmarks and articles detailing the throughput achieved from a wireless device to a wired device - with a wireless router in the middle of course. This is useful to know if you’re transferring or streaming data from your laptop, phone, or tablet to a device connected via ethernet. However, most people forgo connecting anything via ethernet because connecting wirelessly is just too easy. I am much more interested in the throughput achieved from one wirelessly connected device to another wirelessly connected device.

Continue reading...

Doxie's Fanatical Support

• Updated November 9, 2015


At the time of writing, I work for Rackspace, home of Fanatical Support. What is Fanatical Support? Fanatical Support is multifaceted, but one part of it is going above and beyond the call of duty for the customer.

Few companies provide true Fanatical Support. Doxie is one of the companies that does.

Continue reading...

Fix Error 0x80070057 When Installing Windows 7 64-bit on a SSD

• Updated July 7, 2017


While installing Windows 7 64-bit onto a Samsung 850 Evo SSD, I encountered error 0x80070057 immediately after formatting the hard drive. Microsoft has a couple of support articles on this issue, but neither of them provided fixes.

Continue reading...

Datadog OpenStack Capacity Reporting Plugin

• Updated July 1, 2015


Datadog is a fantastic monitoring as a service company. Install their agent on your host and within seconds metrics are uploaded to their service to begin graphing. Their service can integrate with many popular products, but I have yet to find a plugin to integrate Datadog with one of the most talked about pieces of software today: OpenStack.

Continue reading...

A Future Retina MacBook Running Apple's System-on-a-Chip


With the release of the new retina MacBook, all of the major tech blogs have released their reviews. Arstechnica always digs deep into the technical bits of a new Apple product and I noticed something interesting buried in one of their pages.

Continue reading...

Setup Varnish 4 on CentOS 6 as a Caching Server and Load Balancer

• Updated May 3, 2017


In a previous post, I detailed how to setup Varnish 2.1.5 on CentOS 6 as a caching server and load balancer. After setting this up, I realized MP4 files were not streaming and large downloads were taking too long to begin.

Varnish 4 is the latest major release of Varnish and has provided fixes to all of these problems.

This post will be very similar to the previous post, but will provide the new VCL syntax that applies to Varnish 4.

Continue reading...

Setup Varnish 2.1.5 on CentOS 6 as a Caching Server and Load Balancer

• Updated May 3, 2017


Varnish is a highly regarded HTTP caching server. It sits in front of your web server tier and caches content in RAM so subsequent requests are served as quickly as possible.

Varnish can also be a basic load balancer. Combining a caching server and a load balancer works well when one or more of your web servers becomes unavailable. Because Varnish is also acting as the load balancer, no longer will the end user possibly see a “Service unavailable” message while the load balancer is removing the unhealthy web server from the load balanced pool; They will simply see a cached paged instead.

Continue reading...

A Quick Force Touch Trackpad Review


Force Touch was first revealed in the Apple Watch and now has made its way to Apple’s trackpads. I went to an Apple Store to try out Force Touch on the updated 13” retina MacBook Pro.

Continue reading...

Gluster Heal Not able to fetch volfile from glusterd

• Updated June 14, 2017


I recently setup a two node replica Gluster cluster on CentOS 6.6 with Gluster version 3.6.2-1. I setup a private network specifically for Gluster replication and communication and binded the Gluster daemons to this network.

Continue reading...

Change Gluster Volume Connection Timeout for GlusterFS Native Client

• Updated July 1, 2018


After setting up a two node replica Gluster cluster to use as a web content backend, I began testing what would happen when I brought down one of the Gluster nodes. The web nodes access the Gluster cluster using the GlusterFS native client, and I expected them to quickly see that one of the Gluster nodes was down and begin serving content from the healthy Gluster node, but that was not happening. My test simply involved rebooting one of the Gluster nodes. That node would come back online within about 30 seconds, but within those 30 seconds my website was down.

Continue reading...

An Actual Temporary Fix for OS X Yosemite's UI Lag

• Updated June 14, 2017


Every since I upgraded to OS X Yosemite, the experience has been lackluster. A simple Google search will reveal a host of problems Yosemite has introduced, but the absolute most annoying problem for me has been the UI lag. This UI lag mainly occurs when I have an external monitor attached.

Continue reading...

Inject Content into a Jekyll Post

• Updated October 28, 2018


There was a period of time when I wanted to inject an ad into a particular part of every Jekyll post. I did not want to put the actual ad markup in the middle of the Markdown text file because it was ugly and would be difficult to manage if I had to make changes.

Continue reading...

Remove a User's Ability to Unlock FileVault 2 with their User Password

• Updated January 10, 2019


I have used FileVault 2 since OS X Lion without issue and it has worked as expected. With FileVault 2 enabled, before I can login with my user password, I have to first unlock the hard drive using the disk encryption password I previously set.

Continue reading...

Problems Provisioning Ubuntu with Cobbler and Kickstart Profiles

• Updated January 10, 2019


Using cobbler to provision Ubuntu systems is no problem when using Preseed, but it is a problem when using Kickstart Profiles (Ubuntu has had Kickstart compatibility since at least 10.04).

Continue reading...

Making the iPhone Physically Smaller But Keeping the Same Screen Size

• Updated June 14, 2017


With the release of the iPhone 6 and 6 Plus, the iPhone has now joined the ranks of Android phones with large screens. Personally, I think these screen sizes are just right, but everyone always want more. In this case, more means a physically smaller phone that some how retains the 4.7” or 5.5” screen size. How could Apple conceivably do this?

Continue reading...

ExifTool Commands Cheat Sheet

• Updated April 7, 2016


ExifTool by Phil Harvey is a fantastic tool to edit the exif metadata on your pictures. It is especially useful when you have a lot of pictures to edit and have no desire to change metadata by hand.

Continue reading...

Understanding the OpenStack Swift Ring

• Updated May 10, 2017


The folks over at SwiftStack have put together a great blog post and video describing how the Swift Ring works in OpenStack Swift.

Continue reading...

libpng Not Symlinking When Installing ImageMagick on OS X Yosemite


After upgrading from OS X Mavericks to OS X Yosemite, I attempted to install ImageMagick from Homebrew, but encountered an error when brew was trying to install the libpng dependency.

Continue reading...

Centering Images with Jekyll and Markdown

• Updated March 8, 2018


There are a handful of ways to center an image on a web page. The simplest method is to create a CSS class with the margin and display properties and apply that class to the image link.

Continue reading...

Apple Needs to Allow Hiding or Uninstalling of the Bundled iOS Apps

• Updated September 15, 2015


There is no doubt that everyone who owns an iOS device has a screen or folder dedicated to housing the bundled Apple Apps that are never used. It has become an ever increasing “problem” with each release of iOS.

Continue reading...

Multi-machine Vagrantfile with Shorter, Cleaner Syntax Using JSON and Loops


In a previous post, I provided an example Vagrantfile to create multiple virtual machines. That Vagrantfile works perfectly fine, but it contains a lot of redundant code. Because a Vagrantfile is written in Ruby, it is possible to create a Vagrantfile with shorter, cleaner syntax using JSON and loops.

Continue reading...

Using TouchID to Authenticate Against Websites

• Updated January 10, 2019


When Apple introduced TouchID with the iPhone 5s I knew it would slowly become a game changer. I say slowly because Apple did not open up the TouchID API to third-party Apps until recently with iOS 8.

Before iOS 8, TouchID could only be used to unlock the phone and authenticate against iTunes. Now, with the TouchID API open to third-party developers, it is only a matter of time until third-party iOS Apps begin using TouchID everywhere. 1Password, LastPass, Dropbox, and Scanner Pro, just to name a few, already have TouchID built-in to unlock the App.

Continue reading...

Installing python-swiftclient on OS X Yosemite

• Updated January 10, 2019


Installing python-swiftclient on OS X Yosemite is exceedingly difficult compared to earlier versions of OS X. Yosemite ships with Python 2.7.6. Running sudo easy_install pip will install pip 1.5.6.

Continue reading...

iCloud Photo Library, Almost There

• Updated January 26, 2015


Over a year ago I wrote about needing more photo sync options for iOS and how to really connect the Photo App to iCloud. In particular, the part of that piece I wanted to see implemented the most was the following:

Continue reading...

Find the Ubuntu Apt Package a Command Belongs To

• Updated January 10, 2019


While working on Ubuntu Server 14.04, I needed to install the innobackupex command, but simply running sudo apt-get install innobackupex did nothing. I tried running apt-cache search innobackupex, but nothing was returned. This was another case of a command belonging to an apt package that did not use the same name.

Continue reading...

Make Spotlight Private Again in OS X Yosemite

• Updated June 14, 2017


When Apple introduced OS X Yosemite at WWDC 2014 they demoed a brand new and improved Spotlight. Everything about it I liked, but I was concerned about the Spotlight Suggestions and Bing Web Search features. To use those features your keystrokes have to be sent to a server somewhere and processed. I did not want that. I quickly remembered what happened when Canonical released Dash in Ubuntu. At the very least, Apple needed to offer a way to turn this functionality off.

Continue reading...

A Possible Fix for Low Earpiece Volume on the iPhone 6 and 6 Plus

• Updated June 2, 2018


I recently purchased an iPhone 6 and immediately noticed the phone call volume through the earpiece was much lower than my iPhone 5.

Speaker volume was more than loud enough, but the low earpiece volume - even though it was at max volume during the phone call - was making it difficult to understand the person on the other end.

Continue reading...

Create a KVM Based CentOS 6 OpenStack Cloud Image


For some reason CentOS does not keep their historical CentOS releases available online in OpenStack cloud image format. They only have the very latest CentOS OpenStack cloud image available (if you know this to be incorrect, please let me know). However, the current and historical CentOS repositories are available online, and you can create your own custom OpenStack cloud image from them.

Continue reading...

Reconfigure a Dell RAID (PERC) Controller through the Dell iDRAC Using racadm

• Updated January 10, 2019


While setting up an OpenStack Swift cluster, I had five Dell R720 servers with incorrectly configured RAID arrays. The two operating system hard drives were configured in a RAID1 array, as expected, but the 24 data hard drives were configured in two RAID5 arrays. The data hard drives in OpenStack Swift storage nodes should not be in a RAID array; Swift simply wants each hard drive on its own.

You can reboot most of Dell’s enterprise servers into the Dell RAID (PERC) Controller to get access to a GUI to re-configure the RAID arrays. But, with five servers and 24 disks on each, using the GUI would have been a very tedious and time consuming task. So, I began looking into what the racadm command was capable of.

You can SSH to the IP address of a Dell iDRAC and use the racadm command to run all sorts of commands. Luckily, racadm has a set of commands that allow you to reconfigure the RAID arrays.

Continue reading...

Configure Multiple Network Interfaces on an OpenStack Instance

• Updated January 10, 2019


Most of the pre-made OpenStack Cloud Images are configured to connect an OpenStack Instance to one network interface on creation of the instance.

As of OpenStack Icehouse, the functionality to attach another network interface to an existing OpenStack Instance through the Horizon Dashboard is not exposed. However, you can attach another network interface to an existing OpenStack Instance using the neutron and nova commands.

Continue reading...

Delete Duplicate OpenStack Hypervisors and Services

• Updated June 2, 2018


If you ever change the hostname of any of your OpenStack nodes and restart the OpenStack services on those nodes, the services are going to re-register to the OpenStack cluster under the new hostname. Because of this, when you run nova hypervisor-list, nova service-list, neutron agent-list, or cinder service-list you are going to have duplicate entries.

Unfortunately, at the time of writing, there are no commands available to clean up duplicate entries, so you have to modify the various OpenStack databases by hand.

Continue reading...

Questions to Ask to Determine if Your Application is Cloud Ready

• Updated April 7, 2016


Anyone working in IT has heard the question, “is your application cloud ready?”. What on earth does it mean? What factors go into making an application “cloud” ready?

Applications can be architected in many different ways and there are arguably many factors that go into making an application “cloud” ready.

This post isn’t going to cover what those factors are. What’s more interesting to me is how to quickly figure out if an application is “cloud” ready. I have found that there are a series of questions that can be asked to quickly determine this.

Continue reading...

Use OpenStack Swift as a Backend Store for Glance

• Updated May 10, 2017


By default, OpenStack Glance saves images and OpenStack Instance snapshots to its local filesystem at /var/lib/glance/images/.

However, if you have a Swift Cluster, you can just as easily use it to save images and snapshots instead of to the local filesystem where Glance is running.

Continue reading...

OpenStack Swift 401 Unauthorized When Using the swift Command

• Updated May 10, 2017


After setting up a Swift Cluster with TempAuth, I wanted to remove TempAuth and use Keystone to authenticate. However, I kept encountering 401 Unauthorized errors when running the swift command even though I was fairly certain everything was configured properly.

Continue reading...

Authenticate OpenStack Swift Against Keystone Instead of TempAuth

• Updated May 3, 2015


In a previous post I detailed how to install a stand-alone, multi-node OpenStack Swift Cluster with VirtualBox or VMware Fusion and Vagrant. That post configures Swift’s TempAuth module for authentication. However, if you have an existing OpenStack environment, or just an OpenStack Keystone server already setup, you can just as easily use Keystone instead.

Continue reading...

Install a Stand-alone, Multi-node OpenStack Swift Cluster with VirtualBox or VMware Fusion and Vagrant

• Updated May 10, 2017


The OpenStack Swift developer website describes Swift best:

Swift is a highly available, distributed, eventually consistent object/blob store. Organizations can use Swift to store lots of data efficiently, safely, and cheaply.

For being such a powerful object storage platform, I found it surprisingly easy to setup and configure. However, setup becomes more difficult as the number of nodes, racks, and data centers increase.

But, most of us do not have that many nodes, racks, or data centers and simply want to setup a Swift cluster to play with on our workstation.

Continue reading...

Do Not Use Shared Storage for OpenStack Instances

• Updated December 31, 2014


With the advent of cloud computing came the cloud computing methodology and a different way of doing things. Instead of having high availability just at the infrastructure layer, high availability now needs to exist at the infrastructure layer and the application layer. And even though the infrastructure layer is architected to be highly available, your application should be designed to expect something at the infrastructure layer to fail. And when something does fail, whatever failed should not bring anything else down with it. This is a shared-nothing architecture.

Continue reading...

Random Twitter Bootstrap Jumbotron Image on Each Page Load Using jQuery

• Updated June 17, 2017


The Twitter Bootstrap frontend framework provides a UI element called a Jumbotron. As stated at getbootstrap.com, it is “a lightweight, flexible component that can optionally extend the entire viewport to showcase key content on your site”.

In my particular case, I wanted to use the Jumbotron to display different, severely cropped photographs on each page load. This post will go through how to implement this using jQuery.

Continue reading...

A Better Way to Display Random Jekyll Posts on Page Load or Refresh Using jQuery and JSON

• Updated June 8, 2014


In a previous post I detailed how to display random Jekyll posts during each page load or refresh using Javascript. This post will produce the same result but will achieve it with jQuery and JSON.

Continue reading...

Manage Apache VirtualHosts and mod_rewrite Rules with Ansible


I needed a way to manage Apache VirtualHosts and mod_rewrite rules. There are a handful of Ansible Roles available at Ansible Galaxy to manage Apache VirtualHosts, but none of them also manage mod_rewrite rules.

After figuring out how to include additional content in an Ansible Template file, I was able to quickly put together an Ansible Playbook and Ansible Template to manage my Apache VirtualHosts and their particular mod_rewrite rules.

Continue reading...

Where to Find OpenStack Cloud Images

• Updated April 7, 2016


OpenStack Instances are created from OpenStack cloud images. Many modern Linux distribution organizations and companies create and distribute their own official OpenStack cloud images, but for those that do not, it is entirely possible to create your own.

cloud-init is a key part of creating any OpenStack cloud image and will be found in most of the ready-made images.

This post will be an ever growing list of operating systems that have ready-made OpenStack cloud images and instructions on how to create your own if they do not.

Continue reading...

Include Additional Content in Ansible Template File

• Updated May 27, 2014


While putting together an Ansible Playbook to generate a configuration file from an Ansible Template, I needed a way to include additional content from a text file within the generated configuration file. I could not find an Ansible Module to do this, but Ansible uses the Jinja2 templating engine, and with one additional line in the Ansible Template file, I was able to include the contents of the text file in the generated configuration file.

Continue reading...

OpenSSL Commands Cheat Sheet

• Updated June 16, 2017


The openssl command has a vast array of uses and functions.

This post will be an ever growing list of various, useful OpenSSL commands.

Continue reading...

Instant Search with Twitter Bootstrap, Jekyll, JSON, and jQuery

• Updated May 10, 2017


By default, the Twitter Bootstrap Search Field will use Google to search your site. This default functionality works (assuming Google has indexed your site), but it forces you out of your website to the Google search results page. With some tweaks, the search field can be wired to do whatever you want. I wanted a search field that functioned like Google Instant Search with the following features:

Continue reading...

md and mdadm Software RAID Usage Scenarios

• Updated April 24, 2018


md, which stands for multiple device driver, is used to enable software RAID on Linux distributions. I personally used it many years ago, and it even saved my data once. It is managed using the mdadm command.

The following post details various scenarios I have used md for.

Continue reading...

Install Fever RSS Reader on Fedora, RHEL, or CentOS with SSL and SELinux

• Updated May 10, 2017


Ever since Google Reader was surprisingly shutdown in July of 2013, some of the other RSS readers (Feedly, Tiny Tiny RSS, etc.) started to get more attention.

Coincidentally, I discovered and began using Fever just before I received news that Google Reader was shutting down.

Continue reading...

Install Mint Web Analytics on Fedora, RHEL, or CentOS with SSL and SELinux

• Updated May 10, 2017


Google Analytics has always been the go-to web analytics tool. It is fairly easy to setup, and it provides the basic and advanced metrics needed to run a website.

However, 95% of the time, all I want to see are the most up-to-date metrics for number of visits, referrers, and pages viewed. This is where I use Mint.

Continue reading...

Git Commands Cheat Sheet

• Updated June 20, 2017


git is an extremely powerful version control system created by Linus Torvalds.

This post will be an ever growing list of git commands I frequently use.

Continue reading...

Jekyll Resources

• Updated May 30, 2018


Jekyll is a fantastic static-site generator. It gives you everything you need to get a simple, clean website or blog up and running fast. It is also extremely extensible through the use of Liquid formatting.

This post will be an ever growing list of the Jekyll resources I have found useful while using Jekyll throughout several projects.

Continue reading...

Ansible Manage the Same Users Across Servers with Different Passwords

• Updated May 13, 2017


Recently, I was setting up a handful of servers that all needed the same user created but with a different password for that user on each server. After Google searching, I did not find a definitive way to manage users, and most of what I found consisted of bits and pieces of what I was looking for. I ultimately settled on the following solution.

This solution can definitely be improved upon by using group_vars and variable overrides to remove redundant attributes.

Continue reading...

Dell iDRAC racadm Commands and Scripts

• Updated July 31, 2016


The Dell iDRAC web interface has always been cumbersome to deal with. However, you can log in via SSH to a Dell iDRAC and use the racadm command to perform actions against the physical server. Because of SSH, it is possible to automate actions that would otherwise take a long time to do via the web interface.

This post will be an ever growing list of Dell iDRAC racadm commands, scripts, and ways to automate repetitive tasks.

Continue reading...

Create a KVM Based Debian 7 OpenStack Cloud Image

• Updated May 13, 2017


At the time of writing, unlike Red Hat, Fedora, CentOS, and Canonical, Debian does not create and distribute OpenStack cloud images. It is up to you to create your own. Debian now does create and distribute OpenStack cloud images. They can be found here.

I have seen steps using packer templates or virt-builder to create Debian 7 OpenStack cloud images, but I have not seen a step-by-step manual process to understand how it all works.

Continue reading...

Cobbler Not Parsing Kickstart Profile

• Updated May 18, 2017


After installing Cobbler and importing the Ubuntu Server 12.04.4 LTS ISO, I copied the Cobbler Profile created on import to a new Cobbler Profile named ubuntu-12.04.4-server-x86_64-ks with the intention of pointing it to a new Kickstart Profile (yes, Ubuntu supports Kickstart Profiles but only so much).

Continue reading...

Ansible Fix Colon Syntax Error for sudoers File

• Updated January 21, 2019


While writing an Ansible Task to add a user to the sudoers file on a Linux distribution, I encountered an error that kept the Ansible Task from completing.

Continue reading...

The Best and Only iPhone Case I Have Ever Bought

• Updated June 3, 2018


I have used an iPhone ever since they were revealed to the world in 2007. Since then I have never used a case (or as I like to call it “rolling naked”).

Whether you agree or not, the iPhone (especially the 4 and 5) are fantastically designed devices, and I never wanted a case to cover that up. In addition, I think most of the cases on the market are down right ugly or simply too big.

Continue reading...

OpenStack Commands Cheat Sheet

• Updated November 5, 2016


I have found most of the OpenStack commands to be fairly intuitive. However, there are some commands that do not follow a standard syntax, and there are far too many commands and command line switches to remember. In addition, Google searching for specific commands can be time consuming.

This post will be an ever growing list of OpenStack commands I have used across the various OpenStack Projects.

Continue reading...

Install Ansible, Create an Inventory File, Create and Run an Ansible Playbook, and Run Ansible Commands

• Updated June 28, 2018


Ansible is part of the configuration management and orchestration family that includes Puppet, Chef, and SaltStack. Having only ever used Chef, I found Ansible to have a much lower learning curve. I spent more time using it rather than learning it. But, despite its ease of use, there is always some amount of pre-work needed to get started.

In this post I will be stepping through how to install Ansible, create and run your first Ansible Playbook, and how Ansible can be used to run ad hoc commands. I will be running everything from OS X Mavericks. With the possible exception of the installation, all the other steps should work on modern Linux distributions.

Continue reading...

Ansible OS X Mavericks You Must Install the sshpass Program

• Updated January 21, 2019


While bootstraping a new Rackspace Public Cloud Server with Ansible 1.4.4 on OS X Mavericks, I received an error when running ansible-playbook bootstrap.yml --user root --ask-pass.

Continue reading...

Hash root's Password in RHEL and CentOS Kickstart Profiles

• Updated October 23, 2015


root’s password can easily be set in RHEL and CentOS Kickstart Profiles with the following command:

rootpw "password here"

However, anyone using the Kickstart Profile will see the root password in plain text.

It is possible to hash root’s password in the Kickstart Profile with the following command:

rootpw --iscrypted password_hash

But, how do you generate the password hash? Depending on your authconfig configuration, there are several different ways to do this.

Continue reading...

Authenticate RHEL 5 and 6 SSSD Using Kerberos and LDAP Against Active Directory on Windows Server 2008 R2

• Updated May 8, 2017


SSSD brought several authentication and authorization protocols under one roof.

Despite that, it can be tricky to configure RHEL 5 and 6 systems to authenticate with SSSD using Kerberos and LDAP against an Active Directory server. This post details the steps I took to set everything up.

Continue reading...

Display Random Jekyll Posts During Each Page Load or Refresh Using Javascript

• Updated January 10, 2019


Because Jekyll is a static site generator it can be difficult to have various parts of your website be dynamic. For example, I wanted a side bar element to show a list of randomized posts. I found two methods here and here to go to a random Jekyll post by clicking a link, but nothing that displayed a randomized list of Jekyll posts. So, I adapted the Javascript code from the links into what I was looking for.

Continue reading...

Deploy Rackspace Private Cloud v4.2.x powered by OpenStack Havana with Neutron Networking Using VirtualBox or VMware Fusion and Vagrant

• Updated June 14, 2014


Rackspace Private Cloud, and OpenStack on its own, can be a formidable set of software to install. Rackspace Private Cloud uses Chef to deploy OpenStack, and while Chef itself has a high learning curve, its use does make deploying OpenStack easier and more scalable.

Continue reading...

Spinning Up Your First Instance on Rackspace Private Cloud Using Quantum/Neutron Networking

• Updated May 13, 2017


Now that you have Rackspace Private Cloud installed, it is time to spin up your first OpenStack Instance. But there are several things you should do beforehand so you can fully utilize your OpenStack Instance.

Take note, in OpenStack Havana, Quantum Networking was renamed to Neutron Networking. This post covers both OpenStack Grizzly (RPC v4.1.x) and OpenStack Havana (RPC v4.2.x). I will specify when you should use the quantum commands or the neutron commands.

Continue reading...

Kind of Explicitly Set the Default Gateway IP Address on a Quantum Router

• Updated May 13, 2017


On OpenStack Grizzly while in the process of setting up an external Quantum Provider Network so I could attach it to a Quantum Router as the default gateway, I needed a way to specify what IP address is brought up as the default gateway on the Quantum Router, but there is no obvious command line switch to do this.

Why did I need a way to specify what IP address is brought up as the default gateway on a Quantum Router?

Continue reading...

Spinning Up Your First Instance on Rackspace Private Cloud Using nova-network

• Updated June 5, 2014


Now that you have Rackspace Private Cloud installed, it is time to spin up your first OpenStack Instance, but there are several things you should do beforehand so you can fully utilize your OpenStack Instance.

Continue reading...

Create a Ubuntu Server 12.04 LTS Vagrant Base Box from Scratch Using VirtualBox

• Updated May 13, 2017


Vagrant makes it easy to spin-up local virtual machines using VirtualBox or VMware Fusion. There are many Vagrant Boxes available to use immediately after downloading and installing Vagrant. However, I prefer to know exactly how my virtual machine image is created. This post will walk you through creating a Ubuntu Server 12.04.4 LTS Vagrant Base Box from scratch using VirtualBox.

Continue reading...

Create a CentOS 6 Vagrant Base Box from Scratch Using VirtualBox

• Updated May 13, 2017


Vagrant makes it easy to spin-up local virtual machines using VirtualBox or VMware Fusion. There are many Vagrant Boxes available to use immediately after downloading and installing Vagrant. However, I prefer to know exactly how my virtual machine image is created. This post will walk you through creating a CentOS 6.5 Vagrant Base Box from scratch using VirtualBox.

Continue reading...

Manually Add and Remove VMware Fusion Virtual Adapters

• Updated May 13, 2017


VMware Fusion exposes command line options that make it easy to add or remove virtual adapters manually.

In this post, I will be adding and removing virtual adapter vmnet7. A fresh install of VMware Fusion does not include this virtual adapter.

Continue reading...

Advanced Vagrantfile Configuration

• Updated May 13, 2017


Vagrantfile’s are written in Ruby, so you have the full power of Ruby at your fingertips when creating a Vagrantfile.

This post will be an ever growing list of advanced Vagrantfile configurations.

Continue reading...

Create a CentOS 6 Vagrant Base Box from Scratch Using VMware Fusion


Vagrant makes it super easy to spin-up local virtual machines using VirtualBox or VMware Fusion. There are many Vagrant Boxes available to use immediately after downloading and installing Vagrant. However, I prefer to know exactly how my virtual machine image is created. This post will walk you through creating a CentOS 6.5 Vagrant Base Box from scratch using VMware Fusion 5 or 6.

Continue reading...

Operation Not Permitted Mounting NFS Share on OS X Mountain Lion

• Updated January 11, 2019


Mounting an NFS share on OS X has always been slightly more troublesome when compared to mounting an NFS share on a Linux distribution.

Continue reading...

Dell iDRAC 7 Partially Working in OS X Mountain Lion with Java 7

• Updated May 13, 2017


While trying to connect to a Dell iDRAC 7 from OS X Mountain Lion with the Java 7 Runtime Environment installed you have probably received the very informative Connection failed error. Console.app shows nothing and you have to dig through ~/Library/Application\ Support/Oracle/Java/Deployment/log/ to find anything useful.

Continue reading...

Deploy Rackspace Private Cloud v4.1.x powered by OpenStack Grizzly with nova-network Using VirtualBox or VMware Fusion and Vagrant

• Updated June 14, 2014


Rackspace Private Cloud, and OpenStack on its own, can be a formidable set of software to install. Rackspace Private Cloud uses Chef to deploy OpenStack, and while Chef itself has a high learning curve, its use does make deploying OpenStack easier and more scalable.

Continue reading...

Setup the Transmission Web Interface Behind an Apache Reverse Proxy and SSL

• Updated December 19, 2017


By default, the transmission-daemon service uses its own web server and runs on port 9091. Assuming the service is running and the proper firewall holes have been made, the Transmission web interface can be accessed by going to http://transmission.example.com:9091. While remembering to append port 9091 is not difficult, it would be much cleaner to just go to http://transmission.example.com.

Continue reading...

Customizing Vagrant VMware Fusion Virtual Machines with VMX Parameters

• Updated May 31, 2014


I was recently working with Vagrant and the Vagrant VMware Fusion Provider Plugin to add a secondary NIC on-the-fly. Vagrant provides functionality to easily add a secondary NIC but you are required to assign it to a network. I didn’t want to assign it to any network, I just wanted the secondary NIC present.

Continue reading...

Multi-machine Vagrantfile for VirtualBox or VMware Fusion

• Updated May 13, 2017


The following Vagrantfile shows the syntax for setting up multiple virtual machines using VirtualBox or VMware Fusion.

Continue reading...

Install the Open Source Chef Server, Setup knife On Your Workstation, and Bootstrap Your First Client Server

• Updated May 14, 2017


OpsCode, the creators of Chef, offers a hosted Chef Server solution. However, I have always preferred to setup my own severs, and OpsCode also offers an open source Chef Server that you can install and host yourself.

Continue reading...

Create a Ubuntu Server 12.04 LTS Vagrant Base Box from Scratch Using VMware Fusion


Vagrant makes it easy to spin-up local virtual machines using VirtualBox or VMware Fusion. There are many Vagrant Boxes available to use immediately after downloading and installing Vagrant. However, I prefer to know exactly how my virtual machine image is created. This post will walk you through creating a Ubuntu Server 12.04.4 LTS Vagrant Base Box from scratch using VMware Fusion 5 or 6.

Continue reading...

Create VMware Fusion PXE Boot Environment and Use Kickstart Profiles to Create Ubuntu Virtual Machines

• Updated May 15, 2017


It can be difficult to develop a PXE boot process if you don’t have actual servers to PXE boot. Most of us don’t have a lot of bare metal servers sitting around to use for PXE booting. Luckily, VMware Fusion provides the necessary features to PXE boot virtual machines.

Continue reading...

Disqus, Make Your Promoted Discovery Ads Much, Much More Relevant


I have only come across one other blog post about the Discovery feature displaying Promoted Discovery Ads that are not remotely relevant to the on-page content, but I have encountered it enough on this website to want to rant about it.

Continue reading...

Remotely Execute Multi-line Commands with SSH

• Updated January 11, 2019


SSH not only allows you to connect to remote servers, you can use it to send an ad hoc command or commands to a remote server. This post will cover three different methods to remotely execute multi-line commands with SSH.

Continue reading...

Transmission settings.json Reverting to Defaults

• Updated February 2, 2016


The transmission-daemon package from EPEL makes it easy to setup a command line bittorrent client on RHEL 6 or CentOS 6. However, I have encountered situations where modified settings in /var/lib/transmission/.config/transmission/settings.json revert back to their defaults upon starting the transmission-daemon service.

Continue reading...

More iOS Photo Sync Options and Really Connecting the Photo App to iCloud

• Updated June 14, 2017


I have a lot of photos organized in folders on my computer that I would like on my iOS device. The easiest way to sync these different folders onto iOS is to use iPhoto or Aperture, but I don’t have iPhoto or Aperture and I don’t want to use them. I’ve never liked an application importing all of my photos into a database; I prefer the flexibility and simplicity of the file system to manage my photos. iTunes is an option, but it only syncs one folder and the next level of folders within that one folder. The folders I want to sync are organized throughout my Pictures folder. The only option I have is to copy each of the desired folders into an “iOS Sync” folder and sync the contents of that folder within iTunes. A simple solution but it causes redundant data.

Continue reading...

Create Bootable ISO from Red Hat Satellite Server Kickstartable Trees

• Updated May 31, 2014


If you have a Red Hat Satellite Server or Spacewalk Server, you can create bootable ISOs from the Kickstartable Trees.

Continue reading...

Linux Kickstart POST Script to Bond Two NICs

• Updated May 14, 2017


The following script can be placed in a Kickstart Profile POST script to bond two NICs when it is unknown what two NICs will be active.

Continue reading...

RHEL 6 Fix xrdp ERROR another Xserver is already active on display 10

• Updated May 13, 2017


If you have installed package xrdp-0.5.0-0.13.el6.x86_64.rpm from EPEL6, you have probably noticed it does not work out of the box.

Continue reading...

Create a Bootable Windows 7 USB Drive in Linux

• Updated January 10, 2019


There are a lot of guides on the web detailing how to create a bootable Windows 7 USB drive in Linux. However, many of those guides have missing steps, involve using Windows, or use programs not readily available on modern Linux distributions.

The following post will walk you through creating a bootable Windows 7 USB drive from some of the modern Linux distributions.

Continue reading...

Correct Smartphone Video Orientation and How To Rotate iOS and Android Videos with ffmpeg

• Updated January 10, 2019


Have you ever recorded a video with your smartphone only to view it on a computer or TV and have it displayed upside down? If so, here’s why.

The following has been verified on an iPhone 4, iPhone 5, and a Nexus 4. Results may differ with other and newer smartphones.

Continue reading...

OpenSSL CA Signing Error field needed to be the same in the CA certificate

• Updated May 13, 2017


When signing a Certificate Signing Request (CSR) with my own Certificate Authority (CA), the following error occurs even though both strings in parentheses are visually the same:

Continue reading...

Fedora 18 Uninstall AMD Catalyst Proprietary Driver

• Updated October 11, 2018


Installing a proprietary graphics driver installs a lot of packages and dependencies. In the event you want to uninstall the proprietary driver, sometimes it is not as straight forward as it should be because there is no documentation.

What follows are the steps I took to uninstall AMD’s proprietary Catalyst driver from Fedora 18.

Continue reading...

Fedora 18 Fix OpenGL GLX Not Using Direct Rendering Error in Steam

• Updated May 14, 2017


I recently purchased an AMD HD 6670 graphics card to use with Steam in Fedora 18. However, whenever I would launch Steam, I was presented with the following error:

Continue reading...

Fedora 18 Install AMD Catalyst Proprietary Driver with an AMD HD 6670 Graphics Card

• Updated May 14, 2017


I recently purchased an AMD HD 6670 graphics card to use with Steam on Fedora 18.

It has been sometime since I have used a dedicated graphics card within a Linux distribution, and I wanted to see how the kernel would handle installing a dedicated graphics card without installing any additional packages or drivers.

Continue reading...

Linux Stream Videos and Pictures to an Apple TV with airstream and airimg

• Updated May 15, 2017


If you have ever used an Apple iPhone or Apple TV, you are probably familiar with AirPlay. AirPlay is a way to stream content to an AirPlay compatible device like an Apple TV; it is similar to Google’s Chromecast. However, if you are running a modern Linux distribution, you cannot easily stream anything using the AirPlay protocol. Luckily, an open source tool called airstream has been created to do just that.

Continue reading...

Red Hat Directory Server 9 Exception in thread main No fonts found

• Updated January 21, 2019


If you have just installed Red Hat Directory Server 9 on RHEL 6 with only the @Base package group, the java-1.6.0-openjdk package, and the redhat-ds package, and you are trying to open the Red Hat Identity Management Console through a forwarded SSH X session by running redhat-idm-console -a http://localhost:9830, you may encounter a Java stack trace.

Continue reading...

Keep a Red Hat Storage 2.0 Server Updated Through Red Hat Satellite Server

• Updated May 31, 2014


Red Hat Storage 2.0 is typically installed via the ISO image. Out of the box, a Red Hat Storage 2.0 install will retrieve its updates from the Red Hat Network. However, if you want to keep the Red Hat Storage 2.0 server updated internally via a Red Hat Satellite Server there are a few requirements:

Continue reading...

Linux MySQL Server Installation, Database and User Creation, and Administrative Commands

• Updated January 10, 2019


The following steps will install MySQL quickly and securely on Fedora and Enterprise Linux based distributions. In addition, commonly used administrative commands are shown.

Continue reading...

GNOME 3 Shell Customizations

• Updated May 13, 2017


A majority of the GNOME 3 Shell can be customized using Javascript. Some of these changes can be done through the default GNOME 3 GUI, but others require using a command line.

This post will be an ever growing list of GNOME 3 Shell customizations that require using a command line.

Continue reading...

Dell's Project Sputnik with Additional Logo and OS Choices

• Updated June 10, 2018


Dell’s Project Sputnik is impressive; not only is the hardware high quality (the Dell XPS 13 is the best laptop I think Dell has ever made), but the simple fact that Project Sputnik started as just that, a project, and morphed into an actual product speaks volumes that Dell wants a presence in the Linux community. This has been further shown with Dell’s recent release of the Alienware X51, also pre-installed with Ubuntu. I’m not aware of any other industry leaders taking such an interest in the Linux community.

Continue reading...

The One Problem with the Noppoo Choc Mini 84 USB Mechanical Keyboard

• Updated June 2, 2018


I have wanted a mechanical keyboard for sometime. There are so many choices out there it is easy to get bogged down in details and acronyms, but I eventually purchased a Noppoo Choc Mini 84 USB Mechanical Keyboard with Cherry MX Blues.

The Noppoo was fantastic until I figured out what it couldn’t do.

Continue reading...

RHEL 6 Manually Change Time Zone

• Updated July 28, 2016


Time zones are the last thing a systems administrator wants to deal with. NTP usually takes care of most time related tasks, but sometimes you just need to set things manually.

Continue reading...

Doxie Go and Doxie's Awesome Customer Support

• Updated June 29, 2015


After using a CanoScan LiDE90 for sometime, I wanted something more portable, capable of scanning legal sized documents, and more cross platform, so I picked up the Doxie Go.

Continue reading...

Three RFID Blocking Billfold Wallets

• Updated January 10, 2019


Most of the RFID blocking billfold wallets I have come across are complicated and ugly looking. It’s difficult to find a wallet that is simple and good looking.

However, I have come across several wallets that are simple and good looking. The following three wallets I have owned, and I have found them to be some of the better RFID blocking wallets out there.

Continue reading...

MegaCli64 Command Usage Cheat Sheet

• Updated November 13, 2018


The MegaCli64 command has a ridiculous amount of command line switches, and I found the syntax of those command line switches to be very confusing.

What follows are the commands I found useful when trying to physically identify a failed disk and then replace it.

Continue reading...

Linux Restrict Server Login via LDAP hostObject objectClass and host Attribute

• Updated January 10, 2019


It is possible to restrict Linux server login via LDAP by using the hostObject objectClass and host attribute.

Each LDAP user that you want to restrict login access to should have the hostObject objectClass so the host attribute becomes available to that LDAP user. Each LDAP user will have as many host attributes as there are servers that user needs access to.

Continue reading...

AIX Restrict Server Login via LDAP aixauxaccount objectClass and hostsallowedlogin Attribute

• Updated January 10, 2019


It is possible to restrict AIX server login via LDAP by using the aixauxaccount objectClass and hostsallowedlogin attribute.

Continue reading...

RHEL 6 Darwin Streaming Server 6.0.3 Install

• Updated January 10, 2019


Darwin Streaming Server has not been updated in many years and is dated compared to modern streaming technology.

If you still need QuickTime and RTSP streaming, the following steps will walk you through setting up a working Darwin Streaming Server on RHEL 6.0 - 6.3.

Continue reading...

AIX Restrict Server Login via LDAP Groups

• Updated January 10, 2019


If you are working with AIX 6.1 systems and need to restrict server login via LDAP groups, read through the following post.

Continue reading...

Linux LDAP getent passwd uidNumber Not Returning a Result

• Updated May 15, 2017


The following post details the troubleshooting steps I took - and the solution - to figure out why command getent passwd uidNumber was not returning a result.

Continue reading...

Linux Restrict Server Login via LDAP Groups

• Updated January 10, 2019


If you are working with Linux systems and need to restrict server login via LDAP groups, read through the following post.

Continue reading...

RHEL 5 and RHEL 6 Core vs Base Package Group

• Updated May 31, 2014


Typically, RHEL 5 and RHEL 6 are installed with at least the @Base package group. However, @Core is also available to install an even more minimal amount of packages.

Below are the package differences between the @Core and @Base package groups in RHEL 5 and RHEL 6.

Continue reading...

OS X Change hibernatemode with pmset for Instant Wake from Sleep

• Updated November 23, 2018


The default hibernatemode on Apple laptops is 3 which does the following:

Continue reading...

Fedora 18 Kickstart Profile Package Group Name Changes

• Updated May 31, 2014


Fedora 18 was released yesterday, January 15, 2013, and I immediately wanted to boot it. So, I downloaded the DVD ISO, copied my Fedora 17 Kickstart Profile to a new file, made the appropriate Fedora 18 changes to that Kickstart Profile, and kicked it off.

Continue reading...

Linux Install cMatrix from RPM, DEB, XZ, or Source

• Updated May 14, 2017


Most people with any sort of interest in computers have seen The Matrix. One of the most popular things from that movie is the scrolling Matrix code. It quickly became a screen saver on many different operating systems. cMatrix isn’t a screen saver, but it allows you to run the scrolling Matrix code from within your command line.

Continue reading...

Linux Compile skippy-xd from Source

• Updated May 14, 2017


In a previous post, I provided steps to install skippy: Linux software that provides OS X Expose-like functionality in a Linux distribution.

However, skippy is no longer in development and has been forked into a more advanced and modern Linux software called skippy-xd.

The following post will provide steps to compile, install, and use skippy-xd.

Continue reading...

Linux Compile skippy from Source

• Updated May 13, 2017


Outside of GNOME 3, Unity, and compiz, I do not know of any Linux software that provides the Expose-like functionality (now called Mission Control) found in OS X. However, skippy does provide some of this functionality.

Continue reading...

Customize Your BASH Prompt


TwistedCode has a fantastically detailed post about customizing your BASH prompt. I used the information there to create the following BASH prompt that I use across my local machine and servers.

Continue reading...

Linux DVD Ripping with dvdbackup

• Updated October 23, 2018


dvdbackup has been one of the simplest programs I have used to backup DVDs on Linux distributions.

The following steps will install the dvdbackup RPM based package and compile libdvdcss, to decrypt the DVDs, from source.

Continue reading...

Linux Install and Encode with HandBrake on the Command Line

• Updated May 31, 2014


HandBrake is a great tool to rip DVDs and convert them to a particular format.

The following steps will go through how to install HandBrake from source on Fedora and Enterprise Linux based distributions.

Continue reading...

OS X Flush DNS Cache


Mac OS X, now just OS X, seems to change the way the DNS cache is flushed every couple of releases.

Below are the various commands to flush the DNS cache from Mac OS X 10.4 Tiger to OS X 10.9 Mavericks.

Continue reading...

Fedora 17 anaconda dracut Boot Line Syntax

• Updated January 21, 2019


Fedora 17 introduced new anaconda boot line syntax that uses dracut for parsing.

Continue reading...

Fedora 17 Chrome Font Rendering Fix


After installing Fedora 17, I noticed font rendering in Chrome was terrible, but fonts in Firefox looked just fine.

This has something to do with Chrome not honoring the system font hinting settings.

Continue reading...

OS X Update Terminal Tab Text with PROMPT_COMMAND

• Updated May 31, 2014


From Mac OS X 10.3 to OS X 10.8, the Terminal application has always had a problem updating its tab text when disconnecting from an SSH server.

The tab text will update properly when connecting to an SSH server, but upon disconnecting, it will still show the FQDN of the server you were connected to.

Continue reading...

ejabberd mod_shared_roster with Proper Roster Names Setup

• Updated June 6, 2017


In a previous post, I detailed how to setup ejabberd’s mod_shared_roster module to automatically create shared rosters based on LDAP groups when users login.

However, if you integrate ejabberd with an LDAP server and mod_shared_roster, the user’s proper name will not be displayed unless mod_vcard_ldap is also setup.

The following post will detail what is needed to setup LDAP authentication and configure mod_vcard_ldap.

Continue reading...

Linux Rescan SCSI Bus

• Updated January 10, 2019


If you have added one to many disks to a Linux server or added partitions to an existing disk and the operating system has not yet recognized them, you might need to rescan the SCSI bus. You could simply reboot the Linux server, but that’s usually not an option for production systems.

Below are three different methods for rescanning SCSI devices that I have tested on RHEL 5 and RHEL 6.

Continue reading...

Linux Make ddclient Work with Multiple Namecheap Domains

• Updated May 8, 2017


Version 3.8.1 of ddclient and older will not be able to update multiple domain names with each domain name containing one to many hostnames.

For example, if you are trying to update domain names example.com and foobar.com along with their particular hostnames (@, www, or mail), ddclient will only update the first hostname it encounters for a domain name.

Continue reading...

ejabberd mod_shared_roster_ldap Setup

• Updated January 10, 2019


ejabberd is an extensible XMPP server that allows you to setup an internal chat server for your organization to communicate. It can be integrated with an LDAP server, such as OpenLDAP or Active Directory, to automatically create shared rosters based on LDAP groups when users login.

The following post will detail what is needed to setup a shared roster.

Continue reading...

Solaris Replicate ZFS Volume with zfs send and zfs receive

• Updated January 10, 2019


ZFS provides a mechanism to migrate or backup ZFS pools from one server to another using SSH.

For example, pretend you have a large ZFS pool to migrate from one server to another, but your maintenance window to perform the copy is very small. You could run the initial ZFS replication, which will take a considerable amount of time, then when your maintenance window opens, run the ZFS replication again to only copy everything that changed (the incrementals). This will take much less time and hopefully fit within your maintenance window.

The following commands show how to start the initial replication and then the replicate incrementals.

Continue reading...

Solaris Sun Cluster Rename Device ID (DID)

• Updated May 31, 2014


There are situations where a Sun Cluster Device ID, also known as a DID, needs to be renamed.

The following commands show you how to do this.

Continue reading...

Solaris Recreate Failed iSCSI Target Backed by Directory

• Updated May 31, 2014


Upon rebooting an Oracle Thumper 4500 at build SunOS 5.10 Generic_139556-08 i86pc i386 i86pc Solaris 10 509 s10x_u7wos_08 X86, the LUN information shown when running iscsitadm list target -v $TARGET was unknown and the Target name was truncated. The iSCSI initiator could connect to the iSCSI target but the disk would never mount. This particular Oracle server had not been patched in a while, and there was probably a patch available to fix this problem, but I wanted to detail the steps I took to recover the data.

Continue reading...

tags

active-directory (1)


ads (1)


aix (2)


ambient-noise (1)


amd (2)


android (1)


ansible (6)


apache (2)


api (2)


apple (7)


apple-tv (1)


apt (1)


awk (1)


bash (1)


bittorrent (2)


bootstrap (3)


centos (7)


cheat-sheet (14)


chef (1)


chromeos (1)


cloud (1)


cmatrix (1)


cobbler (3)


cowboy-bebop (1)


curl (1)


darwin-streaming-server (1)


datadog (1)


ddclient (1)


debian (2)


dell (3)


development (2)


diagrams (2)


disqus (1)


dlna (1)


dns (1)


docker (1)


documentation (153)


doxie (2)


dvdbackup (1)


ejabberd (2)


exiftool (1)


fedora (6)


ffmpeg (2)


filevault (1)


find (1)


firefly (1)


git (1)


glance (1)


gluster (2)


gnome (1)


golang (1)


google-app-engine (2)


google-chrome (1)


google-chromecast (1)


google-cloud-dns (1)


google-cloud-functions (1)


google-cloud-platform (5)


google-cloud-pubsub (1)


google-drive (1)


google-kubernetes-engine (1)


handbrake (1)


icloud (2)


idrac (3)


imagemagick (1)


ios (3)


iphone (3)


iscsi (1)


java (1)


javascript (1)


jekyll (6)


jquery (3)


json (3)


kerberos (1)


keystone (1)


kickstart-profiles (7)


kubernetes (2)


kvm (2)


ldap (6)


lego (1)


lets-encrypt (1)


linux (18)


macbook (3)


macos (2)


markdown (1)


mdadm (1)


mechanical-keyboards (1)


megacli (1)


microdata (1)


msi-gs65-stealth-thin (2)


mysql (1)


namecheap (1)


networking (1)


neutron (2)


nfs (1)


nova-network (2)


openssl (2)


openstack (21)


opinions (9)


os-x (4)


os-x-mavericks (1)


os-x-mountain-lion (2)


os-x-yosemite (6)


parted (1)


preseed (1)


python (4)


quantum (1)


racadm (2)


rackspace-private-cloud (3)


raid (2)


red-hat (8)


red-hat-satellite-server (2)


reviews (7)


rfid (1)


rhel (7)


rpm (1)


rss (1)


safari (1)


samsung (1)


scp (1)


scsi (1)


security (3)


sed (1)


seo (2)


shell (10)


skippy (2)


snappass (1)


solaris (3)


spotlight (1)


ssd (2)


ssh (1)


sshpass (1)


ssl (1)


sssd (1)


stackdriver (1)


star-wars (1)


steam (1)


storage (1)


support (2)


swift (6)


terminal (1)


thinkpad (1)


transmission (2)


troubleshooting (1)


ubuntu (9)


usb-c (1)


vagrant (11)


varnish (2)


virtualbox (8)


vmware-fusion (10)


wallets (1)


web-analytics (1)


wifi (1)


windows (2)


windows-10 (1)


windows-7 (2)


windows-server (1)


world-of-warcraft (1)


xrdp (1)


xserver (1)


zfs (1)