We're pleased to announce the first release of knife-stencil - a knife plugin for Opscode Chef that greatly simplifies the launching of servers with the
knife command. It uses the information encoded in your host naming convention to apply JSON templates populated with configuration options that would otherwise have to be passed to
This is best illustrated with an example. Previously, if one wanted to launch a server in EC2, the knife invocation might look like this:
knife ec2 server create -r "role[base],role[webserver],role[search]" -I ami-b4c1a4d4 -G default,web,search -x root -N web24.prod.search.mycompany.com
By using knife-stencil to capture the above information in JSON templates, this could be simplified to:
knife stencil server create -N web24.prod.search.mycompany.com
The above example only scratches the surface of what is possible; knife-stencil supports all of the major cloud plugins to knife, so you can, for example, launch DR servers in HP's cloud whilst launching production servers in AWS and development machines in Rackspace, ensure that database slaves are launched in a different zone, geographical region or cloud, to their masters, enforce instance sizing, and so on.
If this sounds interesting, head over to the GitHub page for a more in-depth description, further examples and installation instructions. We hope you enjoy it!