This cookbook configures a system to be a standalone Chef Server. It will install the appropriate platform-specific chef-server Omnibus package from Package Cloud and perform the initial configuration.
It is not in the scope of this cookbook to handle more complex Chef
Server topologies like 'tiered' or 'ha'. Nor is it in the scope of
this cookbook to install and configure premium features or other
add-ons. For clustered Chef Server deployments, see
For primitives for installing
chef-server-core or other Chef Server
It is also not in the scope of this cookbook to handle older versions
of Chef Server, such as 11 or 10. For Chef Server 11, see version
2.1.x of this cookbook on Supermarket, or the
chef11 branch of this
This cookbook is tested with Chef (client) 12. It may work with or without modification on earlier versions of Chef, but Chef 12 is recommended.
- chef-server-ingredient cookbook
This cookbook is tested on the following platforms using the
.kitchen.yml in the repository.
- RHEL/CentOS 5 64-bit
- RHEL/CentOS 6 64-bit
- Ubuntu 10.04, 10.10 64-bit
- Ubuntu 11.04, 11.10 64-bit
- Ubuntu 12.04, 12.10 64-bit
Unlisted platforms in the same family, of similar or equivalent versions may work with or without modification to this cookbook. For a list of supported platforms for Chef Server, see the Chef documentation.
The attributes used by this cookbook are under the
|api_fqdn||Fully qualified domain name that you want to use|
for accessing the Web UI and API. If set to
nil or empty string
""), the IP address will be used as hostname. | String |
configuration | Configuration values to pass down to the underlying
server config file (i.e.
/etc/chef-server/chef-server.rb). | Hash |
version | Chef Server version to install. If
latest version is installed | String | nil
addons | Array of addon packages | Array | Array.new
Previous versions of this cookbook had several other attributes used to control the version of the Chef Server package to install. This is deprecated.
This section describes the recipes in the cookbook and how to use them in your environment.
- Installs the appropriate platform-specific chef-server Omnibus
package from our Package Cloud
- Creates the initial
- Performs initial system configuration via
- Updates the
/etc/hostsfile with the
api_fqdnif that FQDN cannot be resolved.
Chef addons are premium features that can be installed on the Chef Server with the appropriate license. If there are < 25 nodes managed, or a paid subscription license, addons can be installed.
This recipe iterates through the
attribute and installs and reconfigures all the packages listed.
Bootstrap Chef (server) with Chef (solo)
The easiest way to get a Chef Server up and running is to install chef-solo (via the chef-client Omnibus packages) and bootstrap the system using this cookbook:
# install chef-solo curl -L https://www.chef.io/chef/install.sh | sudo bash # create required bootstrap dirs/files sudo mkdir -p /var/chef/cache /var/chef/cookbooks # pull down this chef-server cookbook wget -qO- https://supermarket.chef.io/cookbooks/chef-server/download | sudo tar xvzC /var/chef/cookbooks # pull down dependency cookbooks wget -qO- https://supermarket.chef.io/cookbooks/chef-server-ingredient/download | sudo tar xvzC /var/chef/cookbooks wget -qO- https://supermarket.chef.io/cookbooks/packagecloud/download | sudo tar xvzC /var/chef/cookbooks # GO GO GO!!! sudo chef-solo -o 'recipe[chef-server::default]'
Be sure to download and untar the
packagecloud cookbooks. They're dependencies of this cookbook.
If you need more control over the final configuration of your Chef
Server instance you can create a JSON attributes file and set
underlying configuration via the
node['chef-server']['configuration'] attribute. See the
Then pass this file to the initial chef-solo command:
chef-solo -j /tmp/dna.json
Configuring Chef Server
You can read all about Chef Server's configuration options on the Chef Documentation site.
Applying configuration changes
chef-server-ctl command is the administrative interface to the
Chef Server. It has its own
administrative functions provided by
chef-server-ctl are not in the
scope of this cookbook. Special/customized needs should be managed in
your own cookbook.
License and Authors
- Author: Seth Chisamore firstname.lastname@example.org
- Author: Joshua Timberman email@example.com
- Copyright 2012-2015, Chef Software, Inc
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and