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.
