knife-inspect Knife Plugin
Inspect your chef repo as it compares to what is on your chef server
Install & Usage Instructions
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
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 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 should be compatible with Chef
10, 11 and 12.