Migrate a Three Tier Web Application to Kubernetes

Saturday, June 17, 2017

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

Tuesday, June 13, 2017

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

Wednesday, March 8, 2017

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

Continue reading...

curl Commands Cheat Sheet

Tuesday, March 7, 2017

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

Monday, March 6, 2017

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. thornelaboratories.net, on the other hand, did exist for a longer period of time, and it had enough URLs I wanted to keep alive.

Continue reading...

rpm Commands Cheat Sheet

Sunday, March 5, 2017

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

Saturday, February 25, 2017

I have always preferred web development. I think it’s due to how quickly something 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

Saturday, February 25, 2017

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...

Use lego, gcloud DNS, and DNS Challenge to Generate Let's Encrypt SSL Certificates

Tuesday, November 8, 2016

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 to the masses.

Because Let’s Encrypt is an open certificate authority and provides an API to generate, 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

Saturday, July 23, 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

Thursday, July 14, 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

Saturday, June 4, 2016

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

Wednesday, March 30, 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 Better Way to Inject Content into a Jekyll Post

Monday, March 28, 2016

In a previous post, I described a method to inject content into a Jekyll post. The method worked but felt hacky and inelegant. Additionally, you could only inject content one time in a Jekyll post.

Continue reading...

A Simple, Secure, Ephemeral Way to Share Passwords

Friday, March 25, 2016

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

Monday, February 22, 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

Monday, February 1, 2016

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

Sunday, December 6, 2015

Have you ever used scp to transfer files and/or directories containing spaces only to have it output the following errors:

Continue reading...

Use the OpenStack swift Command with Rackspace Cloud Files

Thursday, December 3, 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

Thursday, November 26, 2015

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

Wednesday, October 14, 2015

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

Tuesday, October 13, 2015

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 to not be needed; there’s no need to convert the Ubuntu ISO to an IMG file. You can simply download the ISO and use dd to copy it to a USB drive.

Continue reading...

Nostalgic Ambient Noise

Wednesday, August 26, 2015

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.

Ambient noise from video games and sci-fi TV shows and movies provided that nostalgia.

This post will be an ever growing list of the better nostalgic ambient noise streams I have come across.

Continue reading...

VirtualBox Commands Cheat Sheet

Monday, August 24, 2015

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

Sunday, August 23, 2015

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

Saturday, August 22, 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

Sunday, July 12, 2015

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

Tuesday, June 23, 2015

I frequent the Console application in OS X, and, lately, I have been noticing a lot of the following error message:

Continue reading...

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

Saturday, May 9, 2015

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 provide working solutions.

Continue reading...

Datadog OpenStack Capacity Reporting Plugin

Thursday, April 16, 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...

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

Sunday, March 29, 2015

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

Saturday, March 28, 2015

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...

Gluster Heal Not able to fetch volfile from glusterd

Wednesday, February 25, 2015

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

Tuesday, February 24, 2015

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 involved simply rebooting one of the Gluster nodes and that node was coming back online within about 30 seconds. However, within that 30 seconds my website was down.

Continue reading...

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

Saturday, January 31, 2015

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

Wednesday, January 14, 2015

Sverrir Sigmundarson has created a better method to do this. I suggest using his method which I have detailed here.

There was a period where 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 change something.

Continue reading...

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

Sunday, January 11, 2015

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

Friday, December 19, 2014

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...

ExifTool Commands Cheat Sheet

Tuesday, December 9, 2014

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

Tuesday, December 9, 2014

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

Monday, December 8, 2014

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

Continue reading...

Centering Images with Jekyll and Markdown

Sunday, November 30, 2014

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...

iCloud Photo Library items were not uploaded due to a network error

Friday, November 28, 2014

Update 2014-12-09: This problem appears to have been fixed. I successfully uploaded the 44 photos I was originally unable to upload.

Apple recently enabled the ability for users to upload photos to iCloud Photo Library through icloud.com. Prior to that users could only upload ohotos to iCloud Photo Library through beta.icloud.com.

I have been uploading photos to iCloud Photo Library every since it was first enabled on beta.icloud.com. However, I have recently run into problems.

Continue reading...

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

Thursday, November 13, 2014

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...

Installing python-swiftclient on OS X Yosemite

Wednesday, October 29, 2014

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.

Those versions should work with python-swiftclient, but after installing the package with pip install python-swiftclient and running the swift command, the following error is thrown:

Continue reading...

Find the Ubuntu Apt Package a Command Belongs To

Saturday, October 18, 2014

While working on Ubuntu Server 14.04 I needed to install the innobackupex command. Simply running 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 didn’t use the same name.

Continue reading...

Make Spotlight Private Again in OS X Yosemite

Saturday, October 18, 2014

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

Saturday, September 27, 2014

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

Wednesday, September 24, 2014

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

Wednesday, September 3, 2014

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

Wednesday, September 3, 2014

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

Sunday, August 3, 2014

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

Sunday, August 3, 2014

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

Sunday, August 3, 2014

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

Wednesday, July 16, 2014

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

Wednesday, July 16, 2014

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

Monday, July 14, 2014

I no longer work with OpenStack, and, as such, no longer maintain this post.

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...

Random Twitter Bootstrap Jumbotron Image on Each Page Load Using jQuery

Wednesday, June 11, 2014

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

Sunday, 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

Monday, June 2, 2014

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

Sunday, June 1, 2014

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

Thursday, May 22, 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...

Beginning to Understand Docker

Tuesday, May 20, 2014

I just returned from the OpenStack Summit in Atlanta. Any of the speakers that talked about “Docker” or “Linux Containers” had a full audience. From this event alone, it was clear that people are very interested in Docker and are still trying to figure out what it is and what it can do.

Continue reading...

OpenSSL Commands Cheat Sheet

Sunday, May 18, 2014

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

Monday, May 12, 2014

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...

Dismantle Linux md Software RAID Array

Saturday, May 10, 2014

I have used Linux md for software RAID for a long time. It has worked well and even saved my data once.

However, I recently needed to dismantle a healthy RAID array. I used the following steps to erase all traces of the RAID array from each hard drive.

Continue reading...

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

Saturday, May 10, 2014

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

Monday, May 5, 2014

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

Sunday, May 4, 2014

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

Thursday, May 1, 2014

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

Saturday, April 19, 2014

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

Wednesday, April 16, 2014

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

Monday, April 7, 2014

Debian now does create and distribute OpenStack cloud images. They can be found here.

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.

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

Tuesday, April 1, 2014

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 the following Kickstart Profile (yes, Ubuntu supports Kickstart Profiles but only so much):

Continue reading...

Ansible Fix Colon Syntax Error for sudoers File

Tuesday, April 1, 2014

I encountered the following error when writing an Ansible Task to add a user to the sudoers file:

Continue reading...

OpenStack Commands Cheat Sheet

Thursday, March 13, 2014

I no longer work with OpenStack, and, as such, no longer maintain this post. The most up-to-date OpenStack commands can be found here, and an OpenStack command cheat sheet can be found here.

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 Your Inventory File, and Run an Ansible Playbook and Some Ansible Commands

Saturday, March 8, 2014

Ansible is part of the configuration management and orchestration family that includes Puppet, Chef, and SaltStack.

At the time of writing, 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.

Despite its ease of use, there is always some amount of pre-work needed to get started.

I will be running everything from OS X Mavericks. With the possible exception of the installation, all the other steps should work on most modern Linux distributions.

Continue reading...

Ansible OS X Mavericks You Must Install the sshpass Program

Sunday, February 9, 2014

The steps in this post are no longer necessary if you are running Ansible 1.9.2 or newer. This issue was probably fixed in a version prior to Ansible 1.9.2, but I don’t know which version.

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

Continue reading...

Hash root's Password in RHEL and CentOS Kickstart Profiles

Monday, February 3, 2014

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

Thursday, January 30, 2014

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

Sunday, January 19, 2014

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

Thursday, December 19, 2013

I no longer work with OpenStack, and, as such, no longer maintain this post. The most up-to-date version of Rackspace Private Cloud powered by openstack-ansible can be found here.

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...

Deploy Rackspace Private Cloud Entirely Within a Vagrantfile on VirtualBox or VMware Fusion

Tuesday, December 17, 2013

I no longer work with OpenStack, and, as such, no longer maintain this post. The most up-to-date version of Rackspace Private Cloud powered by openstack-ansible can be found here.

In a couple of previous posts, I detailed step-by-step how to deploy Rackspace Private Cloud v4.1.x powered by OpenStack Grizzly with nova-network and Rackspace Private Cloud v4.2.x powered by OpenStack Havana with Neutron Networking using Vagrant on top of VirtualBox or VMware Fusion.

Continue reading...

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

Thursday, December 12, 2013

I no longer work with OpenStack, and, as such, no longer maintain this post. The most up-to-date version of Rackspace Private Cloud powered by openstack-ansible can be found here.

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

Thursday, November 21, 2013

The following applies to the OpenStack Grizzly release and could change with future releases.

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; however, 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

Tuesday, November 12, 2013

I no longer work with OpenStack, and, as such, no longer maintain this post. The most up-to-date version of Rackspace Private Cloud powered by openstack-ansible can be found here.

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

Monday, November 11, 2013

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

Monday, November 11, 2013

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...

A Basic Understanding of MapReduce on Hadoop

Wednesday, October 30, 2013

If you read through any article on big data, you will come across the terms MapReduce and Hadoop, but what are they and what do they do? Without a basic understanding of each it is difficult to understand any of those articles.

Continue reading...

Manually Add and Remove VMware Fusion Virtual Adapters

Friday, October 18, 2013

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

Friday, October 18, 2013

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

Tuesday, October 15, 2013

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

Tuesday, October 15, 2013

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

Tuesday, October 1, 2013

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

Sunday, September 29, 2013

I no longer work with OpenStack, and, as such, no longer maintain this post. The most up-to-date version of Rackspace Private Cloud powered by openstack-ansible can be found here.

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

Sunday, September 29, 2013

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

Saturday, September 28, 2013

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

Thursday, September 19, 2013

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

Monday, September 16, 2013

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

Thursday, September 12, 2013

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

Thursday, September 5, 2013

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...

Simple Ways to Send Multiple Line Commands Over SSH

Wednesday, August 21, 2013

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 methods to send multiple line commands over SSH to a remote server.

The first method is a quick overview of running remote commands over SSH.

The second method uses the bash command to run remote commands over SSH.

The third method uses HERE documents to run remote commands over SSH.

Continue reading...

Transmission settings.json Reverting to Defaults

Sunday, August 18, 2013

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...

Create Bootable ISO from Red Hat Satellite Server Kickstartable Trees

Tuesday, July 9, 2013

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

Friday, July 5, 2013

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.

This is typically more of an issue on physical servers rather than virtual machines.

Continue reading...

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

Friday, June 28, 2013

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

When trying to connect from an RDP client, the following errors are thrown:

Continue reading...

Create a Bootable Windows 7 USB Drive in Linux

Monday, June 10, 2013

There are a ridiculous number 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

Tuesday, June 4, 2013

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

Thursday, May 30, 2013

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

Wednesday, May 29, 2013

As you can imagine, installing a proprietary graphics driver installs a lot of packages and dependencies. If you want to remove the proprietary driver sometimes it isn’t as straight forward as it should be because documentation isn’t provided.

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

Friday, May 17, 2013

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

Friday, May 17, 2013

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

Tuesday, May 14, 2013

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

Tuesday, May 14, 2013

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

Continue reading...

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

Tuesday, May 14, 2013

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

Wednesday, May 8, 2013

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

Monday, May 6, 2013

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...

RHEL 6 Manually Change Time Zone

Thursday, April 25, 2013

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...

MegaCli64 Command Usage Cheat Sheet

Friday, February 1, 2013

The MegaCli64 command has a ridiculous amount of command line switches, and the syntax is a bit bizarre as well.

The following commands I found useful when trying to physically identify a failed disk and replace it.

Continue reading...

Linux Restrict Server Login via LDAP hostObject objectClass and host Attribute

Friday, February 1, 2013

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

Monday, January 28, 2013

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

Monday, January 28, 2013

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

Monday, January 28, 2013

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

Monday, January 28, 2013

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

Monday, January 28, 2013

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

Wednesday, January 23, 2013

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

Wednesday, January 16, 2013

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

Continue reading...

Fedora 18 Kickstart Profile Package Group Name Changes

Wednesday, January 16, 2013

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

Thursday, January 10, 2013

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

Tuesday, January 8, 2013

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

Saturday, January 5, 2013

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

Thursday, January 3, 2013

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

Thursday, December 27, 2012

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

Thursday, December 27, 2012

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

Thursday, December 27, 2012

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

Thursday, December 27, 2012

Fedora 17 introduced new anaconda boot line syntax. Up to Fedora 16 the syntax was as follows:

Continue reading...

Fedora 17 Chrome Font Rendering Fix

Wednesday, August 29, 2012

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

Sunday, August 26, 2012

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

Wednesday, August 22, 2012

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

Wednesday, August 22, 2012

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

Wednesday, August 22, 2012

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

Wednesday, August 22, 2012

ejabberd is an extensible XMPP server that allows you to setup an internal chat server for your organizantion 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

Wednesday, August 22, 2012

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 maintenace 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)

Wednesday, August 22, 2012

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

Wednesday, August 22, 2012

Upon rebooting an Oracle Thumper 4500 at build SunOS 5.10 Generic_139556-08 i86pc i386 i86pc Solaris 10 5/09 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...