Pinning cookbook versions to a test bed


#1

I have

  •    1 central Chef Enterprise 12 server with multiple organizations - Dev, QA, etc
    
  •    Several test beds per organizations - TestBed1, TestBed2...TestBed10 in Dev, different ones in QA
    
  •    Berkshelf API server
    

Using the AAME server and the SAME organization, and WITHOUT using Chef PolicyFile, nor setting up an environment json file per test bed, is it even possible to pin a cookbook version to a certain test bed? IOW, I may want

  •    Cookbook1 v1.0.0 in TestBed1 in Dev organization
    
  •    Cookbook1 v1.1.0 in TestBed2 in Dev organization
    

A valid answer may be “I can’t without policy file nor environments”

I’ve been Chef’ng for almost a year now, and this is still one piece of the puzzle I’m lacking.

Chris


#2

Write a configuration cookbook with recipes, similar to environments in that they specify specific versions if other cookbooks. It’s unfortunate that roles can’t do this, and it takes work to maintain and update, and there is no published framework for it or for resolving complex and unanticipated dependency hell, but it’s a common flaw of shared repositories like maven, CPAN, JPackage, etc.

The alternative I personally favor for smaller environments is not to have a chef server at all and use chef-solo on top of a git repo. It demands hand maintenance of DNS or access configs, but scales surprisingly well without requiring the increasingly expensive and difficult to upgrade or replace chef server.

Nico Kadel-Garcia
Email: nkadel@gmail.commailto:kadel@gmail.com
Sent from iPhone

On Jul 24, 2015, at 22:21, “Fouts, Chris” <Chris.Fouts@Sensus.commailto:Chris.Fouts@Sensus.com> wrote:

I have

  •    1 central Chef Enterprise 12 server with multiple organizations – Dev, QA, etc
    
  •    Several test beds per organizations – TestBed1, TestBed2…TestBed10 in Dev, different ones in QA
    
  •    Berkshelf API server
    

Using the AAME server and the SAME organization, and WITHOUT using Chef PolicyFile, nor setting up an environment json file per test bed, is it even possible to pin a cookbook version to a certain test bed? IOW, I may want

  •    Cookbook1 v1.0.0 in TestBed1 in Dev organization
    
  •    Cookbook1 v1.1.0 in TestBed2 in Dev organization
    

A valid answer may be “I can’t without policy file nor environments”

I’ve been Chef’ng for almost a year now, and this is still one piece of the puzzle I’m lacking.

Chris