On Feb 28, 9:35 pm, Patrick <[email protected]> wrote:
> On Feb 28, 2011, at 4:23 AM, Thomas Rasmussen wrote:
>
>
>
>
>
> > hey
>
> > OK, now I have tried to do it via rsync and it seems to be working...
> > but the recurse bug is apparently very serious... I now have a
> > manifest that does:
>
> >    file { "/pack/mysql-5.5.9":
> >      ensure => directory,
> >      recurse => true,
> >      force => true,
> >      owner => "root",
> >      group => "root",
> >      require => Exec[rsync_mysql_install],
> >    }
>
> > This takes about the same time as if I was copying (I need to be sure
> > of permissions of rsync'ed files). Is the recurse feature really that
> > bad?
>
> If the permissions you need to be sure of are all "root,root,755", it will be 
> much faster to just do a chmod+chown at the end and put that and the rsync in 
> a shellscript.
>

That is a hack but not a solution, honestly I'm really disappointed in
puppet not handling this very effeciently.... I've been used to
cfengine2 for the past year or so, but for a particular project we
have decided to use puppet, mainly because we like the manifests
better here than on cfengine...

So I hope that the performance issue when recursing directories gets
attention and gets fixed soon.

Thomas


>
>
> > Thomas
>
> > On Feb 28, 11:28 am, Daniel Piddock <[email protected]> wrote:
> >> On 28/02/11 10:19, Thomas Rasmussen wrote:
>
> >>> Hi
>
> >>> My network is 100Mbit (approximately, but through a VPN so not that
> >>> fast) with latency around 2ms (right now our test-setup is running on
> >>> servers right beside each other :-))
>
> >>> I have tried to switch to passenger and this does not seem that much
> >>> faster, still uses very very long time to run. I now have tried to
> >>> copy the tar-ball and unpackaged this to the target directory and run
> >>> puppet again, now it just wants to correct permissions (which is OK
> >>> because they are wrong in the tar-ball) and this takes 2-5 seconds per
> >>> file!) which is pretty much unusable (I still have the manifest to
> >>> copy from the master to clients)
>
> >> Directory recursion is horribly inefficient and quite broken. It's
> >> md5summing every source and target file twice. It then md5sums the
> >> target again at the end to ensure it did it right.
>
> >> Seehttps://projects.puppetlabs.com/issues/5650, 6003 and 6004.
>
> >>> I'm not that happy about making a solution like yours, it might be the
> >>> solution we choose but I really don't see this as the best one. I'd
> >>> rather have puppet serve the files on its own, but it seems as though
> >>> it is not feasible?
>
> >> If you *really* want puppet to manage the files you have two solutions:
> >> * Put up with the horrible delay and brokenness until it's eventually 
> >> fixed.
> >> * List each file and subdirectory in your manifest.
>
> >> Personally, I went with rsync run from a script with a schedule of
> >> daily, similar to Patrick.
> >> exec { '/usr/local/scripts/installMaps.sh':
> >>     schedule => daily,
>
> >> }
> >>> Still hopes for solutions :-)
>
> >>> Thomas
>
> >>> On Feb 28, 9:53 am, Patrick <[email protected]> wrote:
>
> >>>> Assuming your definition of small matches mine (less that 50Kb), in my 
> >>>> experience Puppet will only do this if the server is loaded (not 
> >>>> applicable to you) or if you have high latency. (more than 100ms ping)  
> >>>> Switching away from Webrick is strongly advised because 2 clients 
> >>>> running at the same time can heavily load it down when serving files, 
> >>>> but I know that doesn't apply to you.
>
> >>>> In my case, I use an exec managed by puppet that uses rsync to sync the 
> >>>> files at 2am.  Here it is although it doesn't sound like it's very 
> >>>> useful to you.  There's also a bit more code to force it to run on the 
> >>>> first run using a creates.
>
> >>>>         exec { "/usr/bin/rsync -avz simba.outer::www/ /var/www/":
> >>>>                 schedule => long_maintenance,
> >>>>                 require => [Package["apache2"], Package["rsync"]],
> >>>>         }
>
> >>>>         schedule { long_maintenance:
> >>>>                 period => daily,
> >>>>                 repeat => 1,
> >>>>                 range => "1:30 - 2:30",
> >>>>         }
>
> >>>>> Any ideas on what the best solution is? It is NOT a solution to simply
> >>>>> setup a manifests that installs the app from the ubuntu repository. Is
> >>>>> there any way of using ie. rsync to deploy the files instead of
> >>>>> puppet?
> >>>> Again, I'm giving you what you asked for, but this is rather simple.
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Puppet Users" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/puppet-users?hl=en.

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

Reply via email to