Reducing cognitive load is perhaps one of the most important things we do, both for our co-workers and for our customers. Read More
The book of scars and avoiding them – Puppet Best Practices is now available
Puppet Best Practices: Design Patterns for Maintainable Code
This collaboration between Chris Barbour and myself is now available for online reading at Safari Books Online
Offline versions can be found at:
- O’Reilly Media Print, PDF, and ePub
- Amazon Print or Kindle
Learning Puppet for v5 on the way
I came here to let people know there will be a Puppet v5-specific update to the Learning Puppet book coming out soon. Then I realized I’d forgotten to post the last update. Oops! Well, there have been and will be quite a few updates… Read More
Dynamic DNS Update with IPv6 in Homebrew
I’ve created patches so that troglobit/inadyn compiles on Mac, and offered them a Homebrew Formula too. The formula will be added to Homebrew core when v2.5 stable is released. If you want to try it out now, you can install from HEAD using the repo tap.
$ brew update $ brew install --HEAD troglobit/inadyn/indadyn
One of the things I really like about inadyn is support for native IPv6 updates. The following config works perfectly for me to update my native IPv6 addresses with Google Domains.
period = 1800 allow-ipv6 = true provider google { username = <em>provided-by-Google</em> password = <em>provided-by-Google</em> checkip-command = "ifconfig en0 |grep inet6 |grep -v temporary" }
Using GNU utils on Macs for Makefile compatibility
One problem I see often with local builds are Makefiles that use modern GNU features in common commands like sed
, awk
, and tar
. If the product only runs on Linux, writing backwards compatible versions for the older BSD-based commands on Macs may not be an effective use of time.
A simple fix is to add the libexec/gnubin
directory to your path as documented here: Install and Use GNU Command Line Tools on macOS. However this changes your active environment, which might break scripts expecting to run on macOS. Further, this isn’t a repeatable configuration that can be safely used by others.
A better way is to explicitly configure the GNU versions to ensure they are used during the build. Read More