On Nov 8, 2010, at 11:10 AM, Nigel Kersten wrote:

> On Mon, Nov 8, 2010 at 10:51 AM, Patrick <kc7...@gmail.com> wrote:
>> 
>> On Nov 8, 2010, at 9:54 AM, Nigel Kersten wrote:
>> 
>> 
>> On Mon, Nov 8, 2010 at 2:17 AM, Patrick <kc7...@gmail.com> wrote:
>>> 
>>> On Nov 7, 2010, at 10:45 PM, Nigel Kersten wrote:
>> 
>> 
>>> 
>>> On Sun, Nov 7, 2010 at 9:52 AM, Christopher McCrory
>>>> 
>>>> # yes, thrice
>>>> /usr/sbin/puppetd --no-daemonize --onetime --server
>>>> puppetmaster.example.com
>>>> /usr/sbin/puppetd --no-daemonize --onetime --server
>>>> puppetmaster.example.com
>>>> /usr/sbin/puppetd --no-daemonize --onetime --server
>>>> puppetmaster.example.com
>>> 
>>> Why do you have to do it three times?
>>> 
>>> 
>>> I would like to know why you do it too.  I've needed to do that because:
>>> 1a) This bug http://projects.puppetlabs.com/issues/3561
>> 
>> That's a legitimate reason, but there are ways to avoid this.
>> 
>>> 
>>> 1b) Sets options in /etc/puppet/puppet.conf
>> 
>> ? Why isn't this just a templated config file? Then you just need to supply
>> appropriate arguments on your first bootstrapping invocation.
>> 
>> I'm not quite sure what you mean.  My puppet.conf is a templated config file
>> and I copy it in place using puppet during the first run.
> 
> Perhaps I'm confused by your 1b) notation? Is this within the first
> run? If so, then we're in agreement.

Yes.  These are both the same run.  I just meant that is what happens that 
really matters.

>>> 
>>> 2) Full run (Will be much shorter because lots of stuff was already done
>>> in the first run)
>>> 3) One last chance just in case something didn't work, timed out, or I
>>> forgot a require.  (Finishes in seconds for me)
>> 
>> Honestly, you should be discovering such missing requires in your testing
>> process. It's not good practice to simply run another one "just in case" in
>> my opinion.
>> 
>> But because of the randomness, I don't always discover missing requires
>> during testing.  I do look over the log file though and if the last run did
>> something, I can then look into it and fix it.
>> It theory this might mean I need more testing.  In practice, the order
>> randomization makes it impossible to ever be sure there are no missing
>> requires that will cause a run to fail.
> 
> What would make debugging and discovering these situations easier for you 
> then?
> 
> I have some simple rules that honestly removed most these problems for me.
> 
> Specify relationships within a class at the resource level.
> Specify relationships across classes at the class level.
> 
> e.g.
> 
> class foo {
>  file { "foofile":
>    require => Package["foopkg"],
>  }
>  package { "foopkg":
>    ...
>  }
> }
> 
> class bar {
>  file {"barfile":
>    require => Class["foo"],
>  }
> }
> 
> but I'm still interested to hear ideas about how we could make
> discovering these issues easier.

The only ordering problems I've missed are ones between execs and files in the 
same class, but every few months I miss one.

This third run, which normally functions the same as --noop, is just a last 
check "just in case".  The only reason I don't make it a --noop is because if I 
screw up, I want the problem to be automatically be fixed, as well as reported 
to me.

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@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