Overview
This repository includes Chef cookbooks to describe and configure secure communication systems, especially Open Source VoIP applications.
To run these, you must install a few base dependencies:
- Git: to check out this repository onto your server
- OpenSSL, Zlib, libyaml: Chef requires your version of Ruby to link to these libraries
- Ruby: To execute these cookbooks
- Rubygems: To install Chef
If you are working from a minimal operating system, you must manually install these dependencies. If you have your Linux distribution's Ruby installed, it will probably "just work". You may jump to the cookbook directories and begin to use them.
Repository Directories
This repository contains several directories, and each directory contains a README file that describes what it is for in greater detail, and how to use it for managing your systems with Chef. If you just want to get one cookbook to run on one server, you only need to care about the cookbooks and config directories.
certificates/- SSL certificates generated byrake ssl_certlive here.config/- Contains configuration files for Rake, Chef and Knifecookbooks/- Cookbooks you download or create.data_bags/- Store data bags and items in .json in the repository.roles/- Store roles in .rb or .json in the repository.
Rake Tasks
The repository contains a Rakefile that includes tasks that are installed with the Chef libraries. To view the tasks available with in the repository with a brief description, run rake -T.
The default task (default) is run when executing rake with no arguments. It will call the task test_cookbooks.
The following tasks are not directly replaced by knife sub-commands.
bundle_cookbook[cookbook]- Creates cookbook tarballs in thepkgs/dir.install- Callsupdate,rolesandupload_cookbooksRake tasks.ssl_cert- Create self-signed SSL certificates incertificates/dir.update- Update the repository from source control server, understands git and svn.
The following tasks duplicate functionality from knife and may be removed in a future version of Chef.
metadata- replaced byknife cookbook metadata -a.new_cookbook- replaced byknife cookbook create.role[role_name]- replaced byknife role from file.roles- iterates over the roles and uploads withknife role from file.test_cookbooks- replaced byknife cookbook test -a.test_cookbook[cookbook]- replaced byknife cookbook test COOKBOOK.upload_cookbooks- replaced byknife cookbook upload -a.upload_cookbook[cookbook]- replaced byknife cookbook upload COOKBOOK.
Configuration
The repository uses many configuration files.
- If you don't care about a chef server, jump to the cookbooks READMEs
The first, config/rake.rb configures the Rakefile in two sections.
- Constants used in the
ssl_certtask for creating the certificates. - Constants that set the directory locations used in various tasks.
If you use the ssl_cert task, change the values in the config/rake.rb file appropriately. These values were also used in the new_cookbook task, but that task is replaced by the knife cookbook create command which can be configured below.
The second config file, .chef/knife.rb is a repository specific configuration file for knife. If you're using the Opscode Platform, you can download one for your organization from the management console. If you're using the Open Source Chef Server, you can generate a new one with knife configure. For more information about configuring Knife, see the Knife documentation.
http://help.opscode.com/faqs/chefbasics/knife
Next Steps
Read the README file in each of the subdirectories for more information about what goes in those directories.