Kyle’s (Fashion) Style Guide

I recently read “Why Are SO Many Millennials SO Uncool?”. Let’s start with a quote: *For the purpose of this writing, I’m defining “cool” as those who don’t conform, who don’t always fit in nor do they try to, and who follow their own path; and “uncool” as those who dress, act, and have the same tastes as the masses and are vulnerable to corporate influences. Now, I’m by no means some sort of authority on coolness.

A Configuration Management Rosetta Stone: Configuring Sensu with Puppet, Chef, Ansible and Salt

I recently finished my Intermediate Sensu Training on Udemy. It was a ton of work but I’m glad I got it all together. Part of that training includes how to deploy and configure Sensu with four of the most popular open-source configuration management tools: Puppet, Chef, Ansible, and Salt. TOC {:toc} The Sensu Decree In order to do the training I had to learn each of these tools enough so I could install a baseline Sensu installation.

A Comparison of Image to ASCII Conversion Tools

Inspired by ponysay, I think wicked ascii/ansi artwork on the terminal is great. I decided to survey all the tools I could find that aid in this conversion to see if there were any dramatic differences in results. Methodology For these tests I used an image with a 160px width, twice that of a standard terminal. Then I cat’d the image in plain xterm and took a screenshot of the results.

Playing with IPv6 Over Bluetooth Low Energy (6LoWPAN)

I like Bluetooth Low Energy (BTLE). I also like IPv6. Did you know you could but both together? Technically 6LoWPAN Requirements modprobe bluetooth_6lowpan echo 'bluetooth_6lowpan' >> /etc/modules Establishing the Connection Set the Bluetooth L2CAP PSM First you need to set the Protocol/Service Multiplexer value on both sides to “62” (0x3E) on both sides: echo 62 > /sys/kernel/debug/bluetooth/6lowpan_psm This PSM value lets the driver know that you are going to multiplex this special new protocol on top of whatever your bluetooth device mith also be doing.

Etherhouse Part 2 - Software

The software that powers the Etherhouse project is open source. This blog post describes that software and how it interacts with all the pieces. Client You can see the Client software that runs on the Arduino. This uses one external library and is in the native Arduino C++. The Arduino runs a limited TCP/IP stack and interacts with the http api. The code plenty of defensive code in place to ensure the client continues to run without interruption or interaction.

Etherhouse Part 1 - Hardware

Etherhouse a project of mine involving eight Christmas gifts. Each gift involved a display of some model houses made from folded paper, each representing the home of a friend or family member. The houses light up, depending on whether that family member is home or not. Their presence is detected based on if their smartphone is on the same network the etherhouse is on. See the GitHub page for more details.

Getting Started Puppet Acceptance Tests With Beaker

Beaker is a test framework created by Puppetlabs to run tests against puppet modules on real servers (vm, containers whatever) and test that they do what they say they should do. This is a quick tutorial on how to use this framework. At the time of this writing, Beaker is under heavy development, so this could all change. The Gem The first thing you need to do is install beaker.

Managing Ssh Known Hosts With-Serf

Serf is a very interesting service discovery mechanism. Its dynamic membership and tags capability make it very flexible. Can we use it to generate a centralized ssh_known_hosts file? Installing and Configuring Serf I like to use configuration management to manage servers. Here I use a Puppet module to install and configure Serf: class { 'serf': config_hash => { 'node_name' => $::fqdn, 'tags' => { 'sshrsakey' => $::sshrsakey }, 'discover' => 'cluster', } } This particular module uses a hash to translate directly into the config.

What Happens When You Run Puppet Tests

Breaking down bundle exec rake spec What is happening when you run: bundle exec rake spec Bundle The first command you are running is bundle. Bundle is kinda like virtualenv for Ruby. It makes sure that you use the same ruby libraries that you, everyone, and puppetmasters use. Bundle uses a Gemfile, and searches downwards. As long as you have the Gemfile in the puppet repo, it will work.

Writing Purgable Puppet Code

Whenever possible, I try to write Puppet code that is purgable and “Comment Safe”. That is not a very good description. What I mean is, Puppet code that removes resources from a system when the corresponding Puppet code is “Commented” out of a manifest. Lets look at a few examples. Example: Managed Sudo Lets say you used this popular sudo module with the following params: class { 'sudo': purge => true, } Great start.