knife-inspect
is a knife plugin that inspects your chef repo as it
compares to what is on your chef server. You can inspect your entire repo,
or individual components.
$ gem install knife-inspect
$ cd [chef repo]
knife inspect
knife cookbook inspect
knife cookbook inspect [COOKBOOK]
knife data bag inspect
knife data bag inspect [BAG]
knife data bag inspect [BAG] [ITEM]
knife environment inspect
knife environment inspect [ENVIRONMENT]
knife role inspect
knife role inspect [ROLE]
So far it checks if...
- your cookbooks are in sync
- you have uncommitted changes in a cookbook (assuming your cookbooks are in their own git repos)
- you have commits in a cookbook that haven't been pushed to your remote (assuming your cookbooks are in their own git repos)
- your data bags are in sync
- your data bag items are in sync
- your environments are in sync
- your roles are in sync
You can use it with your favorite Continuous Integration tool, it returns 0 when everything is in sync or 1 if it's not.
How is it different from knife diff?
- It returns the proper return code, so you can use it with a Continuous Integration tool
knife diff
seems to expect local roles to be json files, knife-inspect supports both JSON and Ruby.- It's my personal opinion, but I think the output from knife-inspect is more readable. Also I don't understand some of the errors I'm getting with
knife diff
(Only in .: clients
for example) - I actually didn't know there was a built-in
knife diff
command.
(in alphabetical order)
- Adam Sinnett (@quandrum)
- Eric Saxby (@sax)
- Dan Buch (@meatballhat)
- Kirt Fitzpatrick (@kirtfitzpatrick)
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Do not bump the version number
- Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request