I’ve been asked a few times about use cases for mcollective.
One of the biggest wins at my company has been using mcollective to build “Oppy” an operational dashboard. Oppy allows developers and support staff to perform deploys on staging servers as well as to audit and monitor client environments in real time. Developers and Support staff do not have access to production or staging environments for a variety of reasons, so it was necessary to provide a tool that could quickly and efficiently provide all of the information and access that these teams require.
- Deployment – Developers can deploy code to staging environments by connecting to an mcollective agent that installs the latest gem packaged version of our software, cleans out the old versions and restarts the application.
- Auditing – Support and Developers can run auditing scripts on all nodes in a certain class and check to make sure that software versions, monitoring settings and software settings are as expected.
- Corrective Actions – Support and Developers can flush the varnish caches by triggering a run of a varnish agent or reset the application on demand.
- Debugging – Developers can run an agent to turn on debug logging for the application and collect the logs by pulling them from the centralized logging server.
Oppy was built on top of Sinatra, which allows for extremely rapid development of basic web applications. A simple example of using Sinatra to run mcollective agents is on my Github account.
The above screen shot is the results of running the nrpe agent, which runs every single monitoring check on a group of hosts and reports back.
All actions are logged, so that there is an audit trail