Skip to content
Opscode Cookbooks for Chef
Ruby Shell
Pull request Compare This branch is 693 commits ahead, 2494 commits behind chef:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
apache2 @ 1a4203f
application @ f90f7a3
apt @ fbeb0d4
aws @ 265ba61
backup @ cebbf31
bluepill
brightbox @ e3d6fd5
build-essential
capistrano
chef-php-extra @ d661d70
chef-server
chef_handler @ a702e25
corporate-vault
couchdb
daemontools
database @ 129680d
dmg @ 11caf56
erlang
firewall @ a0a66c9
ganglia @ 0086882
gearman @ 27f570d
gecode
git @ f971753
graphite @ b412587
haproxy
imagemagick @ 20aec29
iptables
java @ 5e36768
jenkins @ 5dd6829
kibana @ bca5f41
line @ 2e121b8
logrotate @ 3c621f8
logstash @ a3c4a37
memcached @ 870c81a
multi-home @ 511dfef
munin
mysql @ 2b64870
nagios @ ff93cb7
net-utils
newrelic @ 80ad418
nfs @ 81f3e5c
nginx
nginx_simplecgi @ 0ece30b
nodejs @ 1643832
nscd @ b0d3b2c
openssh
openssl
passenger_apache2
passenger_enterprise
perl @ c6d5dad
php @ f3f5db8
postfix @ ccd13f3
postgresql @ f9fb409
powershell @ 4b175af
python @ 34cb929
rabbitmq @ 851bf3a
redis @ 6aa4886
ruby_enterprise
runit
screen
sphinx @ af65f50
sqlite
statsd @ 3f354ab
subversion @ cad4c06
sudo @ 5e2c323
supervisor
sys-utils @ 102d398
syslog-ng
tar @ fdb5ad5
time
tor @ 29e1d43
ucspi-tcp
users @ d107b53
vim
windows @ 2072aa0
wkhtmltopdf @ 2c78663
wordpress
xfs
xml
yum @ 6a065bc
zlib
.gitignore
.gitmodules
README.md

README.md

This directory contains the cookbooks used to configure systems in your infrastructure with Chef.

Knife needs to be configured to know where the cookbooks are located with the cookbook_path setting. If this is not set, then several cookbook operations will fail to work properly.

cookbook_path ["./cookbooks"]

This setting tells knife to look for the cookbooks directory in the present working directory. This means the knife cookbook subcommands need to be run in the chef-repo directory itself. To make sure that the cookbooks can be found elsewhere inside the repository, use an absolute path. This is a Ruby file, so something like the following can be used:

current_dir = File.dirname(__FILE__)
cookbook_path ["#{current_dir}/../cookbooks"]

Which will set current_dir to the location of the knife.rb file itself (e.g. ~/chef-repo/.chef/knife.rb).

Configure knife to use your preferred copyright holder, email contact and license. Add the following lines to .chef/knife.rb.

cookbook_copyright "Example, Com."
cookbook_email     "cookbooks@example.com"
cookbook_license   "apachev2"

Supported values for cookbook_license are "apachev2" or "none". These settings are used to prefill comments in the default recipe, and the corresponding values in the metadata.rb. You are free to change these in those files.

Create new cookbooks in this directory with Knife.

knife cookbook create COOKBOOK

This will create all the cookbook directory components. You don't need to use them all, and can delete the ones you don't need. It also creates a README file, metadata.rb and default recipe.

You can also download cookbooks directly from the Opscode Cookbook Site. There are two subcommands to help with this depending on what your preference is.

The first and recommended method is to use a vendor branch if you're using Git. This is automatically handled with Knife.

knife cookbook site vendor COOKBOOK

This will:

  • Download the cookbook tarball from cookbooks.opscode.com.
  • Ensure its on the git master branch.
  • Checks for an existing vendor branch, and creates if it doesn't.
  • Checks out the vendor branch (chef-vendor-COOKBOOK).
  • Removes the existing (old) version.
  • Untars the cookbook tarball it downloaded in the first step.
  • Adds the cookbook files to the git index and commits.
  • Creates a tag for the version downloaded.
  • Checks out the master branch again.
  • Merges the cookbook into master.

The last step will ensure that any local changes or modifications you have made to the cookbook are preserved, so you can keep your changes through upstream updates.

If you're not using Git, use the site download subcommand to download the tarball.

knife cookbook site download COOKBOOK

This creates the COOKBOOK.tar.gz from in the current directory (e.g., ~/chef-repo). We recommend following a workflow similar to the above for your version control tool.

Something went wrong with that request. Please try again.