CMT -- Config Management Tool
Currenlty we are migrating our project to gitlab: https://gitlab.com/surfsara/cmt
CMT is a Config Management Tool originally created at SARA Computing and Networking Services, which is based in Amsterdam and known as SURFsara nowadays. It once started as a single script, went through some reincarnations, and now it consists of a Django-powered backend on the server-side, and a CLI for the client-side.
The main reason behind CMT's existence is that we needed a tool that's capable of generating configuration-files for certain software running on our clusters. CMT has a database, where we store information about our hardware, which is used to (let CMT) generate configuration-files, based on templates. At SURFsara it's used in production, to generate configuration-files for services like for example dhcpd and bind.
Features
Some features of CMT are:
- Dynamically extendable data model
- Server-side Django-powered easy-to-use web-interface
- Client-side powerful CLI, to use CMT from shellscripts, or interactive from shell
- Automagic generation of configuration files, with templates extended on Django Templates
- Export stored data to, and import from JSON
- Support for multiple clusters, networks, interfaces, etc...
- Easy to install package for the client-side functionalities
- Import the client as a Python-module
- Split server- and client-functionalities as much as possible, and develop as packages apart from each other
- Build an API to make it easier to integrate CMT in other software/scripts