Summary
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.
Usage
$ gem install knife-inspect
$ cd [chef repo]
Knife Commands
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
running knife inspect
:
--no-cookbooks
--no-data-bags
--no-data-bag-items
--no-environments
--no-roles
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 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.
Compatibility
This gem is tested with Ruby 2.1 and 2.2 and as of version 0.14.0 is only compatible with Chef 12. For now use version 0.13.0 if you are still using Chef 11.
Contributors
(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)
Contributing
- 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