Build a "bootstrap tarball"

Ohai, Chefs!

If you’ve built your own open source chef server, you may have used the
"chef-server::rubygems-install" method. That uses a “bootstrap” tarball
created with the various requisite cookbooks to run that recipe.

Yesterday I mentioned in my cookbook release email that the
bootstrap-latest.tar.gz has been updated. After releasing an update that
included chef-client 2.0.2 (fixed a syntax error), I received this mention
on twitter:

https://twitter.com/ieslick/status/273241285958172673

The latest tarball was created with Berkshelf, to ensure the right
versions of released cookbooks were used, rather than whatever the
development repositories had (as was done in the past).

The Berksfile:

site :opscode

cookbook "apache2",          "= 1.3.0"
cookbook "apt",              "= 1.5.0"
cookbook "bluepill",         "= 2.0.0"
cookbook "build-essential",  "= 1.2.0"
cookbook "chef-client",      "= 2.0.2"
cookbook "chef-server",      "= 1.1.0"
cookbook "couchdb",          "= 1.0.4"
cookbook "daemontools",      "= 1.0.0"
cookbook "erlang",           "= 1.1.2"
cookbook "gecode",           "= 1.3.0"
cookbook "java",             "= 1.6.4"
cookbook "nginx",            "= 1.1.0"
cookbook "openssl",          "= 1.0.0"
cookbook "rabbitmq",         "= 1.6.4"
cookbook "runit",            "= 0.16.0"
cookbook "ucspi-tcp",        "= 1.0.0"
cookbook "xml",              "= 1.0.4"
cookbook "yum",              "= 2.0.0"
cookbook "zlib",             "= 1.0.0"

Then, I simply ran:

berks install --path cookbooks

And:

tar zcf bootstrap-latest.tar.gz cookbooks/*

We upload the tarball to an S3 bucket, but you could put it anywhere you
want, should you need to reinstall your Chef Server and want to use this
method.

Note: Chef 11 is going to bring big change to the Chef Server itself,
including how it is packaged (omnibus), distributed (full package),
installed and configured. We’re working on updating the "chef-server"
cookbook accordingly.


Opscode, Inc
Joshua Timberman, Technical Community Manager
IRC, Skype, Twitter, Github: jtimberman

On Tue, Nov 27, 2012 at 1:44 PM, Joshua Timberman joshua@opscode.com wrote:

Ohai, Chefs!

If you've built your own open source chef server, you may have used the
"chef-server::rubygems-install" method. That uses a "bootstrap" tarball
created with the various requisite cookbooks to run that recipe.

Yesterday I mentioned in my cookbook release email that the
bootstrap-latest.tar.gz has been updated. After releasing an update that
included chef-client 2.0.2 (fixed a syntax error), I received this mention
on twitter:

https://twitter.com/ieslick/status/273241285958172673

The latest tarball was created with Berkshelf, to ensure the right
versions of released cookbooks were used, rather than whatever the
development repositories had (as was done in the past).

The Berksfile:

site :opscode

cookbook "apache2",          "= 1.3.0"
cookbook "apt",              "= 1.5.0"
cookbook "bluepill",         "= 2.0.0"
cookbook "build-essential",  "= 1.2.0"
cookbook "chef-client",      "= 2.0.2"
cookbook "chef-server",      "= 1.1.0"
cookbook "couchdb",          "= 1.0.4"
cookbook "daemontools",      "= 1.0.0"
cookbook "erlang",           "= 1.1.2"
cookbook "gecode",           "= 1.3.0"
cookbook "java",             "= 1.6.4"
cookbook "nginx",            "= 1.1.0"
cookbook "openssl",          "= 1.0.0"
cookbook "rabbitmq",         "= 1.6.4"
cookbook "runit",            "= 0.16.0"
cookbook "ucspi-tcp",        "= 1.0.0"
cookbook "xml",              "= 1.0.4"
cookbook "yum",              "= 2.0.0"
cookbook "zlib",             "= 1.0.0"

Then, I simply ran:

berks install --path cookbooks

And:

tar zcf bootstrap-latest.tar.gz cookbooks/*

If you want a shortcut to create a tarball from a Berksfile/Cheffile,
give orderup a spin (there's not much to it)

I've been using this in some of my bootstrapping workflows and it's
quite handy :slight_smile:

We upload the tarball to an S3 bucket, but you could put it anywhere you
want, should you need to reinstall your Chef Server and want to use this
method.

Note: Chef 11 is going to bring big change to the Chef Server itself,
including how it is packaged (omnibus), distributed (full package),
installed and configured. We're working on updating the "chef-server"
cookbook accordingly.

--
Opscode, Inc
Joshua Timberman, Technical Community Manager
IRC, Skype, Twitter, Github: jtimberman

--
Fletcher Nichol

Follow-up:

I pushed the Berksfile and Rakefile to a new repository:

https://github.com/jtimberman/chef-server-bootstrap-tarball

On 11/27/12 1:44 PM, "Joshua Timberman" joshua@opscode.com wrote:

Ohai, Chefs!

If you've built your own open source chef server, you may have used the
"chef-server::rubygems-install" method. That uses a "bootstrap" tarball
created with the various requisite cookbooks to run that recipe.

Yesterday I mentioned in my cookbook release email that the
bootstrap-latest.tar.gz has been updated. After releasing an update that
included chef-client 2.0.2 (fixed a syntax error), I received this mention
on twitter:

https://twitter.com/ieslick/status/273241285958172673

The latest tarball was created with Berkshelf, to ensure the right
versions of released cookbooks were used, rather than whatever the
development repositories had (as was done in the past).

The Berksfile:

site :opscode

cookbook "apache2", "= 1.3.0"
cookbook "apt", "= 1.5.0"
cookbook "bluepill", "= 2.0.0"
cookbook "build-essential", "= 1.2.0"
cookbook "chef-client", "= 2.0.2"
cookbook "chef-server", "= 1.1.0"
cookbook "couchdb", "= 1.0.4"
cookbook "daemontools", "= 1.0.0"
cookbook "erlang", "= 1.1.2"
cookbook "gecode", "= 1.3.0"
cookbook "java", "= 1.6.4"
cookbook "nginx", "= 1.1.0"
cookbook "openssl", "= 1.0.0"
cookbook "rabbitmq", "= 1.6.4"
cookbook "runit", "= 0.16.0"
cookbook "ucspi-tcp", "= 1.0.0"
cookbook "xml", "= 1.0.4"
cookbook "yum", "= 2.0.0"
cookbook "zlib", "= 1.0.0"

Then, I simply ran:

berks install --path cookbooks

And:

tar zcf bootstrap-latest.tar.gz cookbooks/*

We upload the tarball to an S3 bucket, but you could put it anywhere you
want, should you need to reinstall your Chef Server and want to use this
method.

Note: Chef 11 is going to bring big change to the Chef Server itself,
including how it is packaged (omnibus), distributed (full package),
installed and configured. We're working on updating the "chef-server"
cookbook accordingly.

--
Opscode, Inc
Joshua Timberman, Technical Community Manager
IRC, Skype, Twitter, Github: jtimberman