Some Knife Plugins
I’ve shared my ~/.chef/plugins/knife
directory as a Git repository
on GitHub. There’s
only a few, but I hope you find them useful. They are licensed under
the Apache 2.0 software license, but please only use them for awesome.
gem
This plugin will install a gem into the Ruby environment that knife is executing in. This is handy if you want to install knife plugins that are gems.
If you have Ruby and Chef/Knife installed in an area where your user can write:
knife gem install knife-config
If you’re using an Omnibus package install of Chef, or otherwise require root access to install:
knife gem install knife-config
Note If you’re trying to install a gem for Chef to use, you
should put it in a chef_gem
resource in a recipe.
metadata
This plugin prints out information from a cookbook’s metadata. It
currently only works with metadata.rb
files, and not metadata.json
files.
In a cookbook’s directory, display the cookbook’s dependencies:
knife metadata dependencies
Show the dependencies and supported platforms:
knife metadata dependencies platforms
Use the -P
option to pass a path to a cookbook.
knife metadata name dependencies -P ~/.berkshelf/cookbooks/rabbitmq-1.6.4
nukular
I wrote on this blog about this plugin awhile ago.
This plugin cleans up after running chef-client
on a VMware Fusion machine.
knife nukular guineapig base guineapig.int.example.com
plugin_create
This creates a plugin scaffolding in ~/.chef/plugins/knife
. It will
join underscored words as CamelCaseClasses.
For example,
knife plugin create awesometown
Creates a plugin that is class Awesometown
that can be executed with:
knife awesometown
Whereas this,
knife plugin create awesome_town
Creates a plugin that is class AwesomeTown
that can be executed
with:
knife plugin awesome town