Today's DevOps is all about configuration management tools like Chef and Puppet, humongous software suites that intend to manage your system configuration. Their sophisticated domain model allows you to document and manage the configuration of thousands of systems at once.
And I'm just sitting here, wanting a slice of the cake for my handful of private Linux systems. I certainly don't want to bother with all that complexity in order to achieve a defined system state.
Defined system state... Wasn't that what we invented package management for? Why slap another 100k lines of Ruby code on the existing package management solution for my simple use-case?
holo is a radically simple configuration management tool that relies as much as possible on package management for the whole system setup and maintenance process. This is achieved by using metapackages to define personal package selections for all systems or for certain types of systems.
It is recommended to install to Holo as a package. The website lists distributions that have a Holo package available.
Holo depends on the following other packages:
- Go is needed to compile Holo.
- Perl is used for the unit tests.
- shadow is used to create and modify user accounts and groups, and is only needed at runtime.
All dependencies are available as packages for any major Linux distribution. Once you're all set, the build is done with
git submodule update --init --recursive
make
make check
sudo make install
User documentation is now available at holocm.org.