On Jul 6, 2012, at 9:44 AM, DEGREMONT Aurelien wrote: > Le 06/07/2012 18:27, Luke Kanies a écrit : >> On Jul 6, 2012, at 9:24 AM, DEGREMONT Aurelien wrote: >> >>> Le 06/07/2012 18:07, Luke Kanies a écrit : >>>> On Jul 6, 2012, at 1:40 AM, DEGREMONT Aurelien wrote: >>>> >>>>> Le 05/07/2012 19:00, Daniel Pittman a écrit : >>>>>> That would ... probably not show a lot of short-term performance gain >>>>>> for you. The static compiler, >>>>>> >>>>> We tested (and proposed some fixes (pull request #769)) and that looks >>>>> interesting but static compiler as some bad side effect which are >>>>> removing some nice aspect of Puppet. >>>>> >>>>> We like that Puppet, through fileserver, can filter file access based on >>>>> the certificate information. We use it to strictly prevent client to >>>>> access files they should not. >>>>> With static compiler, puppet agent is now accessing file through the >>>>> filebucket which does not have such separation. Any client can access all >>>>> files in the filebucket we cannot filter this. >>>>> It could be nice if static compiler can insert file metadata checksum the >>>>> catalog as it already does to reduce agent/master traffic but still keep >>>>> a file source that agent can use to retrieve file from the fileserver >>>>> when needed. >>>> In order to retrieve a file from a filebucket, you must first know the >>>> checksum of that file's content, and to know that, you must (generally) >>>> know the actual content. >>> We can list the filebucket content (ticket #4871). File bucket is much more >>> usefull with that. >>> But you can also bruteforce the filebucket and get all its content. >> Ah. Well that makes it a bit less useful as a security mechanism, doesn't >> it? > That's why we rely on fileserver only, not a remote filebucket (without > static compiler).
Ah. I think the static compiler could be modified to work well in that mode, too. >>> Filebucket is much nicer for that. This is one the reason we chose to use >>> Puppet. Anyway, It does not seem very difficult to return in the catalog, >>> the sourcelist AND the computed checksum, instead of only one of those >>> (depending on static compiler behing enabled or not). The puppet agent can >>> check the checksum and retrieve the file from the fileserver as it does >>> usually. It seems 99 % of the code is already there :) just a mix of both >>> mode :) >> I expect we'd accept that patch, but it would likely defeat the point of the >> static compiler, unless you verified the file contents when the file got >> downloaded (to confirm the URL contents hadn't changed). > No, Puppet uses a lot of RPC to ask for each metadata of each file it has to > take care from the catalog. Most of the time, 95 % of your file are already > up to date. They do not have changed since the latest puppet run. > With static compiler, the file metadata is already known to the agent and you > can avoid 95 % of those requests. That's a lot! Even more if you have 5000 > agents like us. Good point. >> You'd also have to turn off the filebucket for it to be secure, because >> you'd be locking out the file by URL but you'd have the file by content and >> that wouldn't be locked out. > Sure. We are only interested in filebucket in local mode. > >> Seems like it'd be easier, and maybe better, to allow certain hosts to have >> full list rights to the filebucket, but block that for most hosts. > Better to show an example. > Here is our fileserver.conf > > [global] > path /etc/puppet/production/files/global > allow *.mydomain > > [domain] > path /etc/puppet/production/files/%d/domain > allow *.mydomain > > [node] > path /etc/puppet/production/files/%d/nodes/%h > allow *.mydomain > > > Each of our File object is declared either as 'global', 'domain' or 'node'. > If a file is in 'node' mode, that means we have a different one per server > (like private keys) and I'm sure node A will never be able to access file > from node B, but they have the same declaration in catalog and modules. This > cannot be done with filebucket. Puppet should definitely support this usage mode. -- Luke Kanies | http://about.me/lak | http://puppetlabs.com/ | +1-615-594-8199 -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to puppet-dev@googlegroups.com. To unsubscribe from this group, send email to puppet-dev+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.