You, the sysadmin, want to setup a video card on Ubuntu for a multiheaded display. You follow the googled instructions but it does not go smoothly. You change a whole bunch of things and reboot fifteen times. Eventually it works, but you don't know what you did. From the complexity of the behavior, you suspect the video subsystem reconfigures itself at powerup, at the initial lightdm startup, at user login, and at the lightdm restart after logout. You do not know which files these changes are stored in. Forewarned, a month later you try to do it again on a new instance of the "same" hardware and software, using a more methodical approach. You still end up with a random walk of changing just one thing and then rebooting. How Windows. You suspect the video card manufacturer of changing code in the proprietary video card setup programs without changing the version number. Perhaps this was done with the intention of easy backward compatibility, or just sloppiness. In any case, how can this situation be understood so you can manage it better? How would you debug and investigate using Puppet and Chef?
You, the sysadmin, load two "identical" Raspberry Pi's with the same NOOBS Debian distribution image. Then you compare them. You expect to find some differences: hardware serial numbers like ethernet address, hostname and IP address propagated through configuration files, randomness in disk labels, ssh keys, and log files. What you also find are 10,000 directory modification time differences which were left by the install process. You do not believe these mtime differences cause functional behavioral differences, but it makes it hard to discern what is supposed to be the same and different between these two hosts. Now evolve these two systems for two years using apt-get, which compounds the differences. How can you expect these machines to behave the same when you can't tell if they are running the same binaries? Users swear their machines have an individual personality, and they do: the file content and file stats differences which define this personality are mostly overlooked by tools like Puppet and Chef.
You, the sysadmin, made a typo. Perhaps you didn't hold the control key down during an attempted cursor movement in an editor, or you accidentally pasted something into a terminal. How will you find this accidental modification, one you didn't realize you made, using Puppet or Chef?
For more details
See this slide deck for forty-six more pages of introductory details, and this slide deck for twenty-two pages of case studies.
Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 2003, 2013, 2014, 2015, 2016, 2017, 2018 Brian Bartholomew
Version control: 95415322e7484412c20f1865760617268e7831b6 on 2018-06-18 16:00 -0400