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 [--no-cookbooks --no-data-bags --no-data-bag-items --no-environments --no-roles] 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]
What it does
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 the option switches to disable checking for a resource type when
You can use it with your favorite Continuous Integration tool, it returns 0 when everything is in sync or 1 if it's not.
Frequently Asked Questions
How is it different from knife diff?
- It returns the proper return code, so you can use it with a Continuous Integration tool
knife diffseems 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
Only in .: clientsfor example)
- I actually didn't know there was a built-in
This gem is tested with Ruby 2.3 and has been tested with Chef 13, 12 and 11.
(in alphabetical order)
- Adam Sinnett (@quandrum)
- Eric Saxby (@sax)
- Dan Buch (@meatballhat)
- Kirt Fitzpatrick (@kirtfitzpatrick)
- Ben Hughes (@barn)
- Grégoire Seux (@kamaradclimber)
- Christian Höltje (@docwhat)
- 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