Lusis Cookbooks for Chef
The following are various cookbooks created for opscode chef.
Please do not blindly use these cookbooks without reading them carefully. They are somewhat tuned to the specific needs of my employer. Your best bet is to use them, where appropriate, as a foundation for creating your own cookcooks
This is a modification of the existing opscode chef cookbook used for, among other things, bootstraping new nodes.
The changes made to this cookbook were mainly for making it more palatable on Redhat variants. This includes:
- changing the init method to 'init' for RHEL variants
- cleaning up the client_service.rb for RHEL variants
This is a "from-scratch" cookbook for getting a single-node Voldemort server up and running. It requires a cookbook called jdk which will be up to you to create/import/hack for getting a jdk on your server. Most of the basics are configurable so you can see how you might use the attributes to configure partitioning, schemas, storage layouts and such.
This is a highly modified fork of Seth Chisamore's official opscode Java cookbook. It was converted to allow for Sun JDK support under RHEL variants instead of OpenJDK, which sadly, is not viable for production servers where performance counts.
In the files/default directory, I've touched 4 files (2 RPMS and 2 bin files). You'll want to replace those with the Oracle JDK installer files. This WILL bloat your cookbook as these files are large. Alternately, you can populate a local Yum repo with the RPMs and install from there.
This is a hack of the awsclient cookbook provided by Sonian. The original Sonian awsclient cookbook used the awesome 'fog' gem. However, that doesn't work on the ELFF ruby 1.8.6 RPM for some reason. I've opened a bug report on it. I ported it to use the official amazon aws-s3 gem (the sameone paperclip uses). I've also renamed the resource to be s3_file instead of remote_s3_file in the sonian cookbook to prevent conflicts. Otherwise it behaves exactly the same.
I make NO claims about the viability of the technique used to provide the s3_file resource. I simply followed the Sonian cookbook which appears to clobber the Chef namespace pretty heavily. I looked at converting it to be an LWRP but decided that the current way works cleanly enough for my needs. One thing I'd REALLY like to do is add checksum support via the ETAG MD5 sum provided by S3 however I didn't feel like clobbering the checksum method to use MD5 instead of SHA1 right now.
databag_decrypt and decrypt_test
databag_decrypt is a reference implementation of encrypted databag items. It requires a specific format for the databag item and supporting rake tasks in your chef-repo directory.
decrypt_test is an example cookbook with instructions to verify that it works
The rake tasks are available here:
Make a directory in your repo called "tasks" if it doesn't exist and put the
encrypt_databag_item.rake file in it.
Add the following to the end of your rake file:
load File.join(TOPDIR, 'tasks','encrypt_databag_item.rake')
Read the instructions in the decrypt_test directory for more details.
All of these cookbooks are licensed under the Apache License, version 2.0. Should any file be missing said license header, please feel free to assume the afore mentioned Apache License is applicable to those files.
I'm glad to accept patches to these cookbooks from forks however these are pretty opinionated about things and specific to my employer's needs. Don't take it personally if I don't merge the changes back in.