On Aug 3, 11:50 am, Craig White <craig.wh...@ttiltd.com> wrote:
> On Aug 3, 2011, at 9:33 AM, jcbollinger wrote:
[...]
> > On Aug 3, 9:32 am, "Matthew J Black" <mjbl...@gmail.com> wrote:
> >> The "pluginsync" config var defaults to false. I believe there's a ticket 
> >> to
> >> default it to true in the future. But until that happens you have a few
> >> options:
>
> > [...]
>
> >> 3. Possibly use stages to send out the correct "puppet.conf" before any
> >> modules use variables that are populated by custom facts.
>
> > Nope.  Fact values are determined once per run, regardless of the
> > number of stages.  They are not re-determined between stages.  In a
> > similar vein, however, there is
>
> > 4. Use Puppet environments to distribute the correct puppet.conf to
> > clients that don't have it, without using any of the modules that
> > require your custom facts.  That requires two Puppet runs (using
> > different environments) to reach the target configuration, but that's
> > what you need for Puppet to solve the problem automatically, because
> > that's the only way to get node facts re-evaluated.
>
> > Environments don't get as much discussion around here nowadays as they
> > used to get, and I suppose that's because run stages have stolen some
> > of their thunder.  Nevertheless, there are scenarios for which
> > environments are better suited than is any other Puppet feature, and
> > some of those are in the area of initial provisioning.
>
> ----
> I've sort of been scratching at that post but unable to find the proper 
> technique to solve my itch.
>
> Obviously can set something like 'environment = staging' in 
> /etc/puppet/puppet.conf on the master
>
> and then it will pick it up but when changing it with an External Nodes 
> Classifier (in my case, foreman), and using an erb template for the clients' 
> puppet.conf which has environment = <%= environment %> - one would think that 
> this would change but it doesn't
>
> http://projects.puppetlabs.com/issues/3910
>
> so I believe there is some limbo here


I think you're saying that the variable 'environment' is not working
for this purpose.  I'm not very surprised.  Not only is there some
ambiguity surrounding whether it should or does represent the client's
requested environment or the server's imposed environment, but more
importantly, *neither* of those is what you actually want: the
environment the client should use *next time*.  Your ENC or an
appropriate class should set that value in a different variable (e.g.
targetEnvironment, nextEnvironment, ...), and your template should use
that.


John

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to