Easily browse through Chef data in a user-friendly format using your favorite browser. Chef-browser allows you to list (and search through) nodes, environments, roles and data bags (and items) as well as view their details: basic information plus pre-formatted JSON data. Shorten the time necessary to access often used information with saved searches.
To install chef-browser, run:
$ bundle install
Create a settings.rb file. Provide your server url, client name and the path to the client key. You can add additional connection options, but that's not necessary to run chef-browser properly. A full list of available options can be found in Ridley's yard documentation.
Run:
$ rackup config.ru
Puma 2.6.0 starting...
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://0.0.0.0:9292
Go to http://0.0.0.0:9292.
You can define saved searches. To do that, open your settings.rb file and follow this syntax:
node_search['MySQL Servers'] = 'mysql_server_root_password:*'
node_search['Staging'] = 'chef_environment:staging'
You can define as many saved searches as you like. Your saved searches will appear as a dropdown list next to the search box. Right now this option works only for nodes.
Chef-browser mimics knife's fuzzy searches, so entering "foo*" in the search box will result in performing a search for "tags:foo OR roles:foo OR fqdn:foo OR addresses:foo".
In order to save on bandwidth and memory, partial searches are enabled for users of Chef 11.0. If you use Chef 10.x, disable the use_partial_search
option in your settings.rb file.
Chef-browser allows you to access the following:
- nodes, environments, roles and data bags available on your server,
- details of each node:
- name, ip address, fqdn, environment, tags, run list,
- attributes presented using JSONpath in a handy, filterable table,
- details of each environment:
- cookbooks and their versions,
- default and override attributes,
- details of each role:
- run lists and env_run_lists (if present),
- default and override attributes,
- details of bags and data bag items.
Where possible, tags, environment names and role views link to appropriate nodes, while run list elements link to other roles.
Chef-browser is a Sinatra-based app. It uses Ridley to communicate with the Chef server. Handling configuration settings is done using the Tinyconfig library. CSS & Javascript are provided by Twitter's Bootstrap. jQuery.FilterTable was used to help present data.
Any safety precautions are left on the side of the user. Chef browser is a minimal app that does not provide additional safety-enhancing features apart from what's built in Ridley.
Chef-browser works with Ruby 1.9.3, Ruby 2.0.0, JRuby and RBX.
- Fork the repo.
- Create a branch from the develop branch and name it 'feature/name-of-feature':
git checkout -b feature/my-new-feature
(We follow [this branching model] (http://nvie.com/posts/a-successful-git-branching-model/)) - Make sure you test your new feature.
- Commit your changes together with specs for them:
git commit -am 'Add some feature'
- Push your changes to your feature branch.
- Submit a pull request to the develop repository. Describe your feature in the pull request. Make sure you commit the specs.
- A pull request does not necessarily need to represent the final, finished feature. Feel free to treat it as a base for discussion.