The project I am working on has a server infrastructure that does not seem to fit the ‘norm’ that I would infer from chef documentation where all servers in an environment share the same version of a cookbook. So I am looking for help on how I would set up my cookbooks, environments, etc in order to fit our infrastructure. Our typical server has a bunch of software on it that we have cookbooks for, all pretty normal stuff. The weird part comes in when we need to update different environments and sites. By site, I mean a different configuration for that location, such that the cookbook versions for that site may be different than another site in that same environment.
For example, we have production, test, and development environments. Attributes and cookbook versions may be different in those environments depending on what stage of the process we are on in those environments. Each environment has a bunch of ‘sites’ that we deploy our software to. So what we are trying to do is have development with sites A, B, C, and D, with versions 1.1, 1.2, 1.3, and 1.5 of a cookbook respectively. Test may have sites A, B, C, and D with versions 1.2, 1.2, 1.4, and 1.5 of that same cookbook. While prod has sites A, B, C, and D with versions 1.1, 1.1, 1.2, and 1.3 respectively.
The problem that I am trying to avoid is updating the environment for production to say ‘use version 1.5 of cookbook’ for when I want to update site D, but have all of the rest of the sites also update to that because they use the same environment. Is the only solution to this problem to have a chef environment “per-site-per-environment”? Having ~20 sites and 2-4 environments would seem to be a nightmare for making sure things are properly configured when moving between environments for a site, but so far it looks like the only solution. What do you think?
This message is intended only for the addressee and may contain information that is company confidential or privileged. Any technical data in this message may be exported only in accordance with the U.S. International Traffic in Arms Regulations (22 CFR Parts 120-130) or the Export Administration Regulations (15 CFR Parts 730-774). Unauthorized use is strictly prohibited and may be unlawful. If you are not the intended recipient, or the person responsible for delivering to the intended recipient, you should not read, copy, disclose or otherwise use this message. If you have received this email in error, please delete it, and advise the sender immediately.