
Python3 Ansible 2.4 upgrade issues
I was working on a python3 project so installed python3 on my mac via homebrew. However this became the default python and confused a few things that were expecting python2, such as ansible. I came across three errors, recording the…

Upgrading to Jenkins 2.x
From the Jenkins 2.0 page: This was supposed to be a “drop in replacement”.. however I encountered the following problems: New bouncy castle libs for crypto not compatible with jenkins-jclouds plugin, this caused all jobs that use single-use cloud slaves…

Decoding AF_Netlink Packets from strace
Recently I came across a problem where the openstack neutron linuxbridge-agent was executing bridge fdb show $dev To update its internal database, but these processes were not returning, they instead they were stacking up and increasing the load on the server. Stracing…

AMQPing v0.4 Released
Introduction AMQPing (pypi, github) is a tool based on pika for testing an AMQP broker such as RabbitMQ. Its been on pypi for a while, but needed some love. Initially it could only connect to a broker successfully or throw an…

Syslinux chain32.c ERR: Invalid GPT header’s values.
The version of chain32.c that ships with syslinux 6.01 seems to have a bug reading GPT partitions larger than 2TB. It displays the message shown in the screenshot. The GPT header is actually fine as it can be booted directly…

Find Galera seqno/GTID from running node
Galera’s documentation on restarting an entire cluster instructs you to read the grastate.dat file on each node and check the seqno field to find the most advanced node. However grastate.dat is only written on clean shutdown, so that doesn’t help you…

Ansible Handlers
Ansible handlers are defined in a handlers section or file and are called at the end of each play1)block of ansible configuration that is mapped to a specific group of hosts if they have been triggered. This is useful as it means…
Installing gevent from pypi on OSX
Attempting to install opencenter on OSX was failing as it requires gevent, which is a python module with native C that needs compiling. The last error is: error: Setup script exited with error: command ‘llvm-gcc-4.2’ failed with exit status 1…

Investigating Service Dependency in Chef Cookbooks
I needed to learn how a bunch of chef cookbooks interact, how they depend on each other, and how the services that they configure depend on each other. In order to make this task a little easier, I wrote a python…
nc and cron
ProTip: When using the linux tool ‘nc’ in a cron job, remember to use the -d flag to prevent it from trying to read from standard input.