Random   •   Archives   •   RSS   •   About   •   Contact

sensu-salt

A while back I explained how to Create your own fleet of servers with Digital Ocean and salt-cloud. Today I will extend that post and show how I deployed a test environment for Sensu, an open source monitoring framework.

Before I test out new infrastructure software, I always attempt to write deployment manifests. I subject myself to this exercise for the following reasons:

  • to get better at configuration management (self growth)
  • to enable quick setup and tear down of test environments (save money)
  • to make sure the new software may be deployed and maintained in configuration management (a must)
  • to document the install process and leave comments (my notes double as automation scripts!)
  • to allow knowledge transfer (sharing is caring, you're welcome!)

The state formulas in this post were tested on Ubuntu 12.04.3 x64bit.

Clone or fork the Salt-State tree

https://github.com/sensu/sensu-salt

git clone https://github.com/sensu/sensu-salt.git

Declare deployment targets

Before deployment, we must declare some targets in the top.sls file:

'*':
  - git

'sensu-client*':
  - sensu.client

'sensu-server*':
  - rabbitmq.server
  - redis.server
  - sensu.server
  - sensu.client

Stand up Sensu test environment

I used the following salt-cloud command to create the sensu monitor server:

salt-cloud --profile ubuntu_do sensu-server && salt 'sensu-server' state.highstate

Once the sensu-server was live, I altered the client-config.json and modified the RabbitMQ host with the new sensu-server's IP or DNS record.

I then spun up 4 sensu-clients using the following command:

salt-cloud -P --profile ubuntu_do sensu-client1 sensu-client2 sensu-client3 sensu-client4 && salt 'sensu-client*' state.highstate

This caused 4 cloud servers to be spawned in parallel, and when the provisioning finished, they instantly appeared in the sensu-dashboard which runs on the sensu-server.

Tear down Sensu test environment

Later when I was done messing with writing checks, I used the following salt-cloud commands to destroy the sensu server and clients:

salt-cloud --destroy sensu-server
salt-cloud --destroy sensu-client1 sensu-client2 sensu-client3 sensu-client4



© Russell Ballestrini.