Thanks for your reply!

My issue was that my dnsmasq class was a) downloading the package b) 
setting up the service and c) adding monit monitoring scripts for it.  The 
last part was the cyclic dependency issue.  A number of things are 
monitored by monit, and pulling one of them into my 'preload' stage 
involved pulling all the other dependencies, too, which didn't work.

My solution was to split up the dnsmasq class, separating the package 
download (and initial run) from the rest.  I then added this into its own 
special stage (preload->dnsmasq->main), which solved my problem.  I hope 
this helps future travellers.

Best,
Matt

On Monday, August 19, 2013 10:45:45 AM UTC-4, David Schmitt wrote:
>
> On 2013-08-19 14:06, Matt S wrote: 
> > Hello! 
> > 
> > I've got a manifest that involves downloading and updating a bunch of 
> > different packages using apt, pip, etc. One of my apt-dependencies, 
> > dnsmasq <http://www.thekelleys.org.uk/dnsmasq/doc.html>, redirects the 
> > machine's DNS. Any modules currently running at that time that use the 
> > internet get a temporary name resolution error. Unfortunately, I can't 
> > run this class in a different stage, as it creates a dependency cycle 
> > with the other things that depend on dnsmasq. 
> > 
> > Is there a way to force puppet to run a particular class by itself? 
> > There are enough other tasks/jobs/whatever-we-call-them that being 
> > explicit about the dependencies isn't really worth it (and it'd have to 
> > be kept up to date as my manifest grows). 
>
>
> You might want to look into tags. I've got a few resources which are 
> applied to bootstrap the whole process, which can be applied separately 
> using "--tags kickstart::bootstrap", which is used while kickstarting 
> the node. This ensures that when it reboots, it has a properly 
> configured puppet, but doesn't start services in kickstart. 
>
>
> Alternatively you can pack the initial installation and configuration of 
> dnsmasq into an exec{} to ensure semi-atomic execution. Not recommended, 
> but possible. 
>
>
> Regards, David 
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to