I have spent some work using CHEF with Sitecore 8.1. It was mostly from a Proof of Concept, and for a client that wanted to evaluate it. Additionally, I presented this to CHEF stakeholders in Seattle where we identified that there is a path forward for CHEF and Sitecore.
I have several cookbooks that were created to support the following architectures:
- Sitecore 8.X
- Mongo DB
- Azure IaaS Configurations
- IIS
- SQL Server
The POC contains cookbooks for creating VM's in Azure, installing IIS and SQL Server, installing databases, installing Sitecore in a distributed fashion (CM and CD). The collection of Cookbooks include cookbooks that I have found scattered about that I have tried to bring into one place.
Additionally, most of the cookbooks were incomplete, including the Azure Resource cookbook. Huge Inc. as well started creating a cookbook for Sitecore 7.X on Chef. I extended and revamped it to work with Sitecore 8.x, which included the installation of Mongo DB.
All said, the cookbooks and recipes provided, allowed me to demonstrate a full install in a 45 minute POC meeting, where all I did was execute the CHEF recipes from the Chef Server and watch the magic happen.
Cookbooks Used:
- iis_demo - This provides all of the recipes for setting up IIS
- microsoft_azure - Base microsoft_azure cookbook.
- mongodb3 - This is a cookbook I created to install MongoDB using Chocolatey.
- msazure_expanded - This provides updated recipes for using Azure Resources. Limited in functionality still, but gets VM's and Storage setup correctly
- sitecore_ext - This is the forked Huge Inc. Sitecore cookbook, modified heavily for Sitecore 8.x.
- vendor cookbooks - There are a host of other cookbooks that are dependencies.
POC CHEF Repo
You can find my CHEF Repo on my Github called chef-sandbox
Provided as is. Feel free to fork.
Thoughts and Comments
These cookbooks are not adequate for Sitecore 9 at all, and I argue are probably not needed with the introduction of SIF. In fact, it might be pretty easy to rewrite these cookbooks to execute SIF commands directly, then trying to run IIS, SQL Server, or Sitecore independently.
For Sitecore 8.X, connection strings were the hardest part. My advice is to plan out the environments in the CHEF Server to a point where you can configure IP addresses and hostnames within the Environment variables so that connection strings can be created without magic.
I lost access to the CHEF Sever I was using, so I can't show the recipe configuration that I was using, but you can infer from the methods in the various cookbook recipes, which ones I was using. Most cookbooks rely heavily on the default.rb
recipe.
Get CHEF Trained and Certified!
CHEF offers really great training opportunities. This POC was completed starting with knowing nothing about CHEF, sitting through a 3 day intensive training program, followed by 2 days to put together a POC.
Hope this helps!