[chef] Released: changes to Chef bootstrap/config


Chronological Thread 
  • From: Joshua Timberman < >
  • To:
  • Subject: [chef] Released: changes to Chef bootstrap/config
  • Date: Fri, 25 Sep 2009 11:56:20 -0600

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello!

I released the changes to the Opscode/cookbooks and the wiki updates the other day. The chef cookbook is much different than before, and the bootstrap cookbook is a new addition. Please see the installation page on the wiki[0] for details, and please review the README docs in the bootstrap and chef cookbooks[1].

Reminder: The server recipe no longer sets up passenger.

If you are using CentOS / RHEL / Fedora with the RPMs, please continue to use the older bootstrap tarball (bootstrap-0.7.10.tar.gz), as the RPMs that manage all the init scripts and configuration are still in progress.

The older procedures are still available[2] as well, using bootstrap-0.7.10.tar.gz. We think the new procedure is a lot more streamlined and generalized, despite some duplication between the two cookbooks.

If you run into trouble, please post to this list or stop by #chef on IRC.

[0] http://wiki.opscode.com/display/chef/Installation
[1] http://github.com/opscode/cookbooks/blob/master/bootstrap/README.rdoc
   http://github.com/opscode/cookbooks/blob/master/chef/README.rdoc
[2] http://wiki.opscode.com/display/chef/Configuring+Chef+Server+and+Clients

On Sep 21, 2009, at 6:51 PM, Joshua Timberman wrote:

-----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-----

- --
Opscode, Inc
Joshua Timberman, Senior Solutions Engineer
C: 720.878.4322 E: 


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)

iEYEARECAAYFAkq9BEQACgkQO97WSdVpzT08mwCbBVcrMrgfW/O5emCcIWj8d5Fe
I+4An0zxtT4pgtmw9oMRfIJs2r1leKVw
=1aK6
-----END PGP SIGNATURE-----



Archive powered by MHonArc 2.6.16.

§