Will synchronize your chef-repo with a Chef Server.
It assumes that all:
- Cookbooks
- Roles
- Nodes
- Data Bags
- Environments
Are controlled via git. Anything not in your repo will be deleted.
You can start the service with:
env CHEF_REPO_DIR=YOUR_CHEF_REPO_PATH ./bin/chef-github-hook
Replace YOUR_CHEF_REPO_PATH with, um.. the path to the chef repo you want to manage. Assumes you have a working .chef/knife.rb file inside that repository.
We will pull the updates from github, checkout the "after" commit in the payload, and synchronize the above.
We load every node in a loop. If a file exists that is the node name ending with ".rb", we will instance-eval that file in the context of the node we fetched.
Not at all. I've actually never even run it. Pretty sure it'll almost work, though.
Not at all.
See the LICENSE file - Apache 2. Copyright Adam Jacob.