-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Ohai Chefs!
We would like to take a moment to let everyone know about upcoming changes to the Opscode cookbook for Chef for the installation and bootstrap/configuration procedures.
First, some background. When we launched Chef, we didn't have any OS specific packages, just RubyGems. We provided the Chef cookbook as a canonical cross-platform method of getting everything set up, because RubyGems doesn't handle external dependencies (ie, CouchDB), service startup, or file/directory creation outside the Gem itself.
Thanks to contributions from the community, we now have some platform-specific packages (rpm, deb), and more on the way (bsd, gentoo). Many people expect installing a package for their platform installs all dependencies, creates all the right files and directories, sets up a basic configuration and starts any relevant services. The Debian/Ubuntu debs do all this, for both clients and servers. It will soon be covered by the Red Hat/CentOS rpms, as well. To reflect package installation expectations, the "bootstrap" method of configuring Chef with chef-solo itself will only be applicable to RubyGem installations with a new cookbook called "bootstrap". The goal of this cookbook is to get all the components in place to match package installations.
Once the bootstrap is complete, or platform packages are installed, the "chef" cookbook can be used to manage the clients' or server's configuration. That cookbook will be streamlined. Important changes to note:
General:
The attributes have been consolidated into one file, chef.rb, rather than split amongst chef.rb, client.rb, indexer.rb and server.rb.
Attribute files in the chef cookbook and other associated cookbooks are updated to the new 0.7.10 notation for 'default' attribute values, ie:
default[:chef][:client_interval] = "1800"
We don't explicitly set up the various bits of Chef as runit services anymore. We assume this was either done by the bootstrap, or that the package installation handled installing an init script. The default is still to use runit, but that can be controlled with an attribute "init_style".
Client:
This cookbook no longer manages the chef gem/package version; it manages /etc/chef/client.rb, reloads the configuration if the template changes, and can auto-validate a client if /etc/chef/ validation_token exists.
Server:
This cookbook no longer configures a Chef Server with Passenger. This makes the RubyGem installation consistent with package installation, as not all platforms have a clean package installation method for Passenger.
The default server recipe (chef::server) sets up the client (chef::client), manages the chef-indexer and chef-server services, and configures both from /etc/chef/server.rb. It also compacts the Chef database in CouchDB if it is over 100Mb.
The chef::server_proxy recipe sets up an Apache proxy vhost to provide SSL in front of the chef-server running as a Merb application. The passenger configuration is no longer the default because not all platforms have an easily-installed passenger package, so this would be a big inconsistency between the RubyGems bootstrap and native package installations, though the chef cookbook will have a passenger deployment recipe as an option.
These cookbooks aren't live yet. The wiki will be updated to reflect the change in installation and configuration, as well as how to use on existing systems. There will be some basic information about the cookbooks/recipes for the bootstrap and chef cookbooks in their respective README.rdoc. Once the documentation is updated and the cookbooks are updated, we will send out another announcement.
- --
Opscode, Inc
Joshua Timberman, Senior Solutions Engineer
C: 720.878.4322 E:
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)
iEYEARECAAYFAkq4H4YACgkQO97WSdVpzT3wWgCfSOlCfMkxyy3dzy+ql8+JwB3f
2FwAoJ9oZjEAmcNItzr5dYbKHb/mDTJ7
=ltv0
-----END PGP SIGNATURE-----
Archive powered by MHonArc 2.6.16.