My First Published Puppet Module: bios

What? I’ve written lots of crappy Puppet modules. Here is a slightly less crappy module that can help you configure BIOS settings on your servers for you. It works on Dell C class servers and Intel platforms. Please pull request or email me if you want to have it work on something else too! Why? BIOS settings should be considered configuration just like any other configuration, and hence managed by your configuration management tool, if possible.

Puppet on OpenWrt!

Status: Github Repo is here: https://github.com/solarkennedy/puppet-on-openwrt/ OpenWrt package files are submitted for inclusion Puppet/facter patches have been included in Trunk for inclusion in puppet 3.2 Binary packages have been made for early adopters (and me) Why? To scratch my own itch, and for Fun! How? Downloads are here: http://download.xkyle.com/openwrt/ Because of the dependencies, it is probably easier to add the repo: . /etc/openwrt_release VERSION=`echo $DISTRIB_RELEASE | cut -f 1 -d -` TARGET=`echo $DISTRIB_TARGET | cut -f 1 -d /` LINE="src/gz puppet-packages http://download.

Picking Server Hostnames: Worstest, Worser, Worst… Better, Betterer, Bestest

Picking a server hostname is abig deal. I’ve seen quite a few, lets traverse the hostname-awesomeness-continuum and see if we can learn something. Worsest morpheous trinity alf Why do these suck? These names have no information what-so-ever. If you see a server alert, you have no clue what services are actually down. It might as well be a random string. IT is a random string. Pro Tip: Don’t give make server hostnames random strings.

Decoding Balanced Payments Puzzle 1

A strange string appeared at the bottom of a Balanced Payments blog post: NmQ2ZjYzMmU3Mzc0NmU2NTZkNzk2MTcwNjQ2NTYzNm U2MTZjNjE2MjQwNjU2MzZlNjU3MjY1NjY2NjY5NjQ2MTY1N mI2MTZkNmY3NDc0NmU2MTc3Njk= One of those puzzles to attract coders I guess. The guys at Hacker News spilled the beans, so lets spill them some more. First though,** Mad Props** to the Balanced team for thinking “outside” the unit-test-box. Plus Jenkins rocks. The world needs more Jenkins. Bash? I’m not a developer, so my first instinct was to use the existing set of tools that people have already written to solve this puzzle:

Hacking a Hallmark Text Band: First Attempt

The Hallmark Text Band is a strange thing: Doesn’t Hallmark know kids have cell phones now? Anyway, it is an extremely simple micro-controller driving a led matrix and a C-Max CMM-9201. You get 10 characters, and a small reed-switch? triggers a hardware interrupt, and broadcasts your 10 characters to a friend, and you swap messages. The devices holds 24 messages, FIFO. Memory is volatile. Profanity filter included. Oh well.

Validating Graphite Metrics With Bash!

At my dayjob I get to work with Graphite and power meters. It is cool: To make it easy for my clients to get power information, I’ve written a command line tool called “power” that they can run to get the power usage for a server when running their program. Here is an example: power METER-NAME sleep 10s Pretty handy. The “METER-NAME” is pretty important, as it lets the script know which system’s power you are interested in.

An IPMI SEL Viewing Shootout!

UPDATE (2015-02-18) Albert Chu from FreeIPMI commented that FreeIPMI does NOT attempt to decode OEM events by default. These are events that are OEM specific, so each motherboard may require a different interpretation. FreeIPMI has a --interpret-oem-data option and possibly in conjunction with the -W assumesystemevent option, to attempt to decode these. Unfortunately I no longer have the motherboard I originally ran these on. I might do a followup post with a new motherboard with similar “issues” and see how FreeIPMI compares to the other tools with these options.

Configuring BIOS Settings With Puppet!

You know what it is like to spend time configuring the BIOS on a a server. You reboot the server, and wait for it to take its sweet time to come back up, frantically push its button, hope that you didn’t miss your chance. Then spend some one-on-one alone time with the interface, making sure you do all the right keystrokes to get the settings you want. Sounds like a bad date.

Building Linux Packages For Kernel Drivers! (dkms howto)

Background Most of the time the Linux kernel does a great job of having drivers you need, but sometimes you need to install a special driver or update an existing module. Running make; make install is all fine and dandy for testing, but for production you want a repeatable process. For me, this means OS packages. (deb/rpms) So, how do you go from kernel module source code => Debian package?

Cool Things to Do After Installing OpenWrt

OpenWrt is the bomb. Think all the power of a full Linux distro on your tiny home router or plug computer. Install an External Root Overlay What the heck does that mean? OpenWrt uses an ingenious system were the root filesystem is a super compressed squashfs, merged with a read/write jffs2 filesystem called the overlay. This maximizes your available space on the device. Instead of using part of your remaining flash for read/write, you can use a larger, external device for the overlay.