This is the blog formerly found at ffrank.github.io. Logo credit: nature by Flatart from Noun Project (CC BY 3.0)

Moving from jekyll to hugo

Perfect is the enemy of good

I’m dusting off the old blog. I was inspired to do this while building my website, which I did with hugo and enjoyed quite a bit. So on a whim, I test-migrated the blog content to hugo as a proof of concept, with a “rapid prototyping” state of mind: Just throw things at the wall, see if anything sticks. If it’s pretty, maybe even keep it. Top-down blog design Rather than committing a new base to the original blog repository, I started a fresh new repo and did the basic steps to make a site using the Beautiful Hugo theme. [Read More]
meta  hugo  bash 

Mgmt Code Deployment

Continuing my blog series on figuring out the basics of mgmt networking and etcd, it’s time to tackle one of the most important aspects. At least that’s how I feel about it. After all, it will be nice to show flashy inotify tricks to your team, but eventually you will want the tool to do some actual work. But how? We won’t be launching mgmt manually on each managed node to read the respective code file to run. [Read More]
mgmt  etcd  code 

An Actual Cluster

In this little blog series, I’ve been wrestling with mgmt’s embedded etcd server, trying to get it to form a functioning cluster with mgmt 0.0.21. This finally worked on the local machine, so let’s take the next step and take it to a little network. You never listen Everything starts with the seed server. For mgmt 0.0.21, I’m launching it like this: # mgmt run --tmp-prefix --hostname h1 --ideal-cluster-size 3 yaml examples/yaml/etcd1a. [Read More]
mgmt  etcd  network 

Disentangling Etcd Servers

In the previous post, you got to watch me try and get to the bottom of a suspected bug in mgmt or its embedded etcd server. What I found was an FAQ entry to match my issue, and some limited knowledge about etcd’s go packages for embedding servers in other software. The FAQ information gave me an idea about what I was seeing. In my first attempt of building a cluster, I had quite faithfully reproduced the commands from the original post that introduced the clustering feature in mgmt. [Read More]

On Bad Ad Hoc Theories

I have a soft spot for ad hoc theories, even bad ones, as long as they are funny. These early days of 2020, though, the fun has escaped us by and large, and creative minds can go to some dark places. I ended up getting into a brief Twitter discussion with Mattias Geniar concerning a blog post in which he puts forth the proposition that countries deliberately delay a their attempts to Flatten The Curve of the SARS-CoV-2 pandemic in order to “save money on medical expenses”. [Read More]

Getting Etcd Back

In the previous post I ran into an issue with the YAML example graphs for the etcd functionality not really working anymore. Coming up with a solution in these graphs was not hard (and in fact proved an opportunity to learn a few things along the way). However, I did not manage to get the cluster up and talking regardless. I accepted the challenge and sat down to try and find out what was wrong with etcd. [Read More]

Attempting Some Resource Collecting

After some adventures building a new feature for mgmt’s Puppet support, and making a presentation including live demos about it, I find myself quite impressed with how far mgmt’s interface and its configuration language have evolved since last I played with them. One thing that I found lacking is the documentation. As the tool is now in a nice shape for people out there to go ahead and give it a spin, I feel that improving the docs will be especially helpful in order to allow early adopters to get a smooth start, without the need to read code or asking James and his contributors for help. [Read More]
mgmt  yaml  graph  etcd  cluster 

Faster Puppet For Mgmt

Abstract When running a graph that was created from a Puppet manifest, mgmt has so far used a workaround for each untranslatable resource. This workaround involved an exec type resource, and shelling out to a variant of puppet resource. Using the new puppet yamlresource receive subcommand, mgmt can now send resources to a persistent Puppet process instead. The native support for this is implemented through the new pseudo-resource pippet in mgmt. [Read More]

Puppet Scripting Host

Abstract In the course of improving the Puppet support in mgmt, I created yet another functionality for the puppet yamlresource module. It allows writing arbitrary resource descriptions to Puppet’s standard input in a YAML format. Puppet synchronizes each received resource in turn, printing a line of diagnostics in JSON format in response. This allows more flexible scenarios than running the compiler for each resource, or even just a simple process like puppet resource, which still implies heavy overhead. [Read More]

Building The Code Mixer

This blog is not dead. It hasn’t seen any new content in a long while, which is a shame, but I did use the hiatus to recharge some creative energy. Here’s hoping progress will be more steady next year. Narrator voice It wasn’t more steady. In fact, this article was kept around as an unfinished draft throughout 2019, not to be published before Config Management Camp 2020. It still lacks diagrams that make the graph code understandable. [Read More]