Why mcm?
14 Dec 2016mcm is a configuration management solution. However, at first glance, mcm will seem quite strange to someone used to Puppet or other similar tools. “Where is the one command that does everything? What are all these small tools?” mcm doesn’t have its own language. mcm doesn’t have a daemon. mcm doesn’t even have a way of sending configuration to remote machines. Why not? It doesn’t need to. All of the infrastructure you need to do these things is already on your computer.
At the heart of mcm is the belief that less is exponentially more. Every environment is different, so mcm tries to get out of the way as much as it can. So instead of creating complex new software to understand, mcm tries to leverage the tools you already understand. At its core, mcm is just a catalog schema — a specification. The catalog is stored in a well-specified data format: Cap’n Proto. The rest of mcm provides a collection of tools that interoperate using the catalog format. Why is this better? Because with less tools and less to learn, mcm allows you to run more powerful workflows. For instance:
- Need to write a program to build a configuration? Use Lua. Or write your own tool to generate a catalog file.
- Need to send your configuration to a remote machine? Send a bash script over SSH. Or copy the catalog to a network file share then execute it directly
- Need to encrypt or sign your configurations? Use gpg. Catalog files are just files.
- Need to visualize your complex configuration? Use GraphViz.
mcm may be small, but its simplicity enables more powerful, nimble workflows. Learn how to Get Started.