Hi Doug,
Environments are solely global in nature, so that file needs to go in your top-level environments directory (and uploaded to your Chef server). I think you’re looking at them backwards. Environments are containers (think development, staging, production) where you may want to have different versions of a cookbook, or different attributes. Typical use cases are things like having a different set of hostnames or credentials that you use in staging vs. production, or locking your production environment to a specific version of a cookbook so that you don’t inadvertently release something before it’s been tested thoroughly.
This presentation by Seth Vargo may help clear it up, but feel free to ask more questions if I didn’t explain it well enough: https://speakerdeck.com/sethvargo/chef-plus-environments-equals-safer-infrastructure
On February 14, 2014 at 3:41:09 PM, Douglas Garstang (
">
) wrote:
I'm missing an important detail with chef
environments. I created an environment called 'eu2-prod' with the
knife command, and can view and edit it.
In my cookbook I have created the environments
directory into which I have deposited an environment file called
'eu2-prod.json'. It looks like this:
{
"name": "eu2-prod",
"description": "",
"cookbook_versions": {
},
"json_class": "Chef::Environment",
"chef_type": "environment",
"default_attributes": {
},
"override_attributes": {
}
}
All this has been uploaded to the chef server.
However, when the client runs, it can't find the data from the
eu2-prod environment.
Looking at the chef GUI, I'm still confused. The
cookbook itself doesn't show the environments/ directory, but
rather has a drop-down at the top which lets me select which
environment I am looking at. No matter which environment I pick,
'None', '_default' or 'eu2-prod' I can't see any of the data from
the environments/eu2-prod.json file.
If I go over to the Environments global section in
the UI, also there's no data there. I wouldn't expect to see any
data there anyway, as I imagine that's environment data that's,
err... global in scope.
Thanks,
Doug
|