Thanks for the pointer, Gary.

It seems to address the issue of missing providers, even better than my 
suggestion.

However, I'm not sure if/how it addresses other situations, e.g.:
1. Provider exists but has to be updated.
2. Puppet version update.
3. Configuration files - missing or have to be updated.
4. Other types of configurations which have to take place, e.g. add a 
network link (e.g. VPN, proxy), or make any other arbitrary change which 
can affect the rest of the puppet run (or future puppet runs).

What I'm thinking about is a generic way to say "OK, now I'm finished doing 
all sorts of tweaks to the system, please start puppet and take these 
tweaks into consideration".

Is that possible?

Cheers,

--Amos

On Wednesday, March 21, 2012 1:51:48 PM UTC+11, Gary Larizza wrote:
>
>
>
> On Wed, Mar 21, 2012 at 1:11 PM, Amos Shapira <amos.shap...@gmail.com>wrote:
>
>> Hello,
>>
>> I encounter issues regarding puppet "self update" that I'm sure are
>> not uncommon:
>> 1. When puppet version updates it doesn't restart to run the rest of
>> the manifest with the new version.
>> 2. When a new provider is installed (or extra configuration is done to
>> enable an existing provider), puppet still won't make it available.
>>
>> example for (1): Our vagrant (http://vagrantup.com/) dev base boxes
>> still come with Puppet 2.6.3 while the manifest depends on Puppet 2.7
>> features. I can manually upgrade puppet manually (and that's what I do
>> on dev), but when the time to deploy to production comes it
>> practically means that I have to manually upgrade Puppet to 2.7 on all
>> hosts before I push the change.
>>
>> example for (2): We use daemontools 
>> (http://cr.yp.to/daemontools.​html<http://cr.yp.to/daemontools.html>
>> )
>> to monitor some of our servers. Puppet comes with a "daemontools"
>> Service type provider but since the daemontools package isn't
>> installed yet the provider is made unavailable for the rest of the
>> run. A second puppet run, assuming it managed to install daemontools
>> in the first one before it failed on other things, succeeds in picking
>> up the daemontools as a provider.
>>
>> another example for (2): I use opsview (https://github.com/dpeters/
>> puppet-opsview <https://github.com/dpeters/puppet-opsview>) to monitor 
>> hosts. When the type is loaded by puppet it
>> looks for a file called /etc/puppet/opsview.conf to find URL/username/
>> password of the opsview REST server. This file doesn't exist (or can
>> be out of date) in the first run causing the Type to fail.
>>
>>
> Amos, have you seen this feature --> 
> http://projects.​puppetlabs.com/issues/6907<http://projects.puppetlabs.com/issues/6907>
>
>
>  
>
>> My suggestion -
>>
>> Define a new "preload" stage - resources which can affect puppet's own
>> execution (e.g. types, config files, puppet version updates) can be
>> placed in that stage and eventually a specific function call (or a
>> special built-in trigger inside the Puppet code?) will cause Puppet to
>> drop everything at the end of this stage and start from fresh.
>>
>> The mechanism has to be careful to limit potential inifinite loops -
>> e.g. if nothing was changed during the stage then don't re-run, or if
>> the stage keeps changing things and puppet re-starts more than a set
>> limit then fail.
>>
>> What do you think about this? Is there another solution/work-around/
>> standard-best-practice I'm not aware of?
>>
>> Thanks.
>>
>> --
>> 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+unsubscribe@​googlegroups.com<puppet-users%2bunsubscr...@googlegroups.com>
>> .
>> For more options, visit this group at 
>> http://groups.google.com/​group/puppet-users?hl=en<http://groups.google.com/group/puppet-users?hl=en>
>> .
>>
>>
>
>
> -- 
>
> Gary Larizza
> Professional Services Engineer
> Puppet Labs
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/XUeixQ5zq7sJ.
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