Where is the best place to put node definitions when using directory environments?
Where is the best place to put node definitions when using directory environments? To me a given node should only be in one place and should not be tied to directory environments. I believe our environment may be overly complex. A given node is currently living in:
/etc/puppet/labs/environments/qa/manifests/dev/nodes.pp /etc/puppet/labs/environments/john_dev/manifests/dev/nodes.pp /etc/puppet/labs/environments/john_dev/manifests/john_dev/nodes.pp /etc/puppet/labs/environments/tom_dev/manifests/tom_dev/nodes.pp /etc/puppet/labs/environments/tom_dev/manifests/dev/nodes.pp /etc/puppet/labs/environments/dev/manifests/dev/nodes.pp
Couple things to note. We have only merged <user_dev> to dev (and not from dev to qa, qa to prod, etc) When another <user_dev> joins the team, these permutations will continue, as well as merging the puppet modules to the higher environments. Also, I'd like to see the node definition in a separate file to quickly locate (e.g., using locate -ir <node name="">). My gut feeling this structure is over complicated and possibly wrong.
Your thoughts please.
PS. we use R10k for creating even more directory environments. The list above will continue to grow (ad nauseam).