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/russellballestrini/sensu-salt

git clone https://github.com/russellballestrini/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