Hail to the Chef

An elegant knife for a more civilized age

Since launching RevealCloud, Linux has been our number-one Operating System of choice for customers. It's always been easy to install on a single system with a single command, or for anyone with a framework for executing custom commands on large numbers of systems. But anyone using Chef would have to make their own cookbook and bake their own recipe.

At last, Chef is officially supported as an installation method. Our cookbook can be found at http://community.opscode.com/cookbooks/copperegg. While there is ample documentation both there and on our shiny new install page to get you going, I'd like to offer a few pointers to make your life just that much better.

Tags

RevealCloud has long supported grouping systems by tags, but with chef it's even simpler. The default[:copperegg][:tags] attribute accepts a comma-separated list of tags you wish to apply to your servers. The most obvious way tags are useful is viewing one group of systems in the dashboard:

Chef

But tags aren't just for aesthetics; they're also for alerts.  Perhaps the most readily cited use is production vs staging systems monitored with the same RevealCloud account.  You may wish to receive missing alerts for production systems, but not for staging.

Another is server type.  We at CopperEgg use MongoDB for part of our data storage needs, and Ruby on Rails for a piece of the application.  Since these run on different server sizes, we may consider a Load of 5 to be high for a database replica server, but not for an application server, where 15 might start to cause worry.  Conversely, you may want to always ensure you have 30% excess disk capacity on a database server, but only care to have 10% on the application server.  So, different alert thresholds may be configured differently using the tags, which are automatically added at server provision time with the chef [:copperegg][:tags] attribute.

These, and many more, can be configured in the "Issues" tab in the RevealCloud Application:

Chef - CopperEgg

Label

Labels are for when the hostname just isn't good enough.  This may be a useful attribute for one-off servers, or servers to which you may want the fqdn (fully-qualified domain name, such as yourserver.company.com) and can determine it programmatically with chef in time to set the attribute.  Or, maybe you have production and development nodes that use similar (or identical) hostnames.  Setting the label attribute based on the environment could solve this problem for you.  To set the label, use the [:copperegg][:label] attribute for the node.

Be warned, however:  If you blindly apply the same label to all of your systems, you won't be able to tell them apart in the Dashboard, TopView, or Systems pages, and any alerts for identically-labeled systems will have the same subject line. They will be treated by RevealCloud as separate hosts, since they are, but an untrained eye won't see the difference at first glance.

Proxy

Some users may require a proxy to access the outside world via HTTP/HTTPS.  If you are one such user, then this is the attribute for you.  There is nothing special about this setting, just set it to yourserver:port (such as proxy.company.com:8080), and RevealCloud does the rest.  Proxy is set with the [:copperegg][:proxy] attribute.

Contributions

Chef has an excellent community, both of power and novice users, built on sharing experience and code.  If you would like to help improve the official RevealCloud Chef recipe in any way, please tell us!  Email feedback@copperegg.com, and make sure to use or mention your RevealCloud account email, and we'll be happy to hear from you.

Happy Cooking!

Related Posts