I think people are missing Gary's point (or maybe I am). Puppet works by ensuring a package is installed. If the package version changes, puppet will install the new version.
I a lab where those pesky students might delete a file in, say the MS Office directory, puppet would do nothing since the package version has not changed. There is very well architected solution to this: radmind. In my mind, puppet is great in an environment where there is either good system administrative controls on the computers, or knowledgeable users that know not to delete an arbitrary file. In a student lab situation where who knows what might happen, radmind or even deep freeze might be a better solution. That said, i want to thank Udo's explanation for how the provider works. He explanation should be added to the wiki page: http://reductivelabs.com/trac/puppet/wiki/PuppetMacOSX > pkg_deploy is only a convenience/wrapper define around the package- > type. > Since OS X does not really have something like a package-management, > you can really only install stuff. > The package-type does mark a successfull installation of a package > by creating a > /var/db/.puppet_[pkg|app]dmg_<packagename> > > Thats it. You can remove that file by hand, then puppet thinks it > did not install the package and reinstalls it again. > Another trick (what we do), is to simply increase the version number > of the package. One could also call it: rename the package. > (OfficeX-2008.1.dmg -> OfficeX-2008.2.dmg) The only issue I see is the possible proliferation of these .puppet_ files in /var/db. How do people deal with them (or not)? --- Thanks, Allan Marcus 505-667-5666 On Jun 29, 2009, at 6:12 AM, Gary Larizza wrote: > > Hi All, > > I'm successfully using pkg_deploy to deploy DMG-encapsulated packages > on Mac Clients. My question would be - since Puppet is essentially > used to define a "state" that the computer is in, what would be the > best way to maintain a "state" after deploying a package? > > For example, if you deployed a package to install Microsoft Office, > you would probably ensure that the Microsoft Office directory (as well > as the individual .Apps) was Present. If the directory WASN'T present > (someone deleted it, for example), is there a way to call pkg_deploy > again to re-deploy the package, or would you have to keep the > Microsoft Office directory structure on the Puppetmaster server > (inside your module/files directory, for example) in order for it to > send the directory structure down to the damaged client? > > In that vein (and a separate question), how does puppet know that > pkg_deploy has been run and that the DMG-encapsulated package has been > run/installed? It doesn't call pkg_deploy on subsequent catalog > checks by the client - so it's not bringing down the DMG again and > attempting an install. Is there some sort of "receipt" that it checks > - or does it actually USE the Receipts directory to monitor > installation? > > I know I'm trying to use Puppet to maintain staff and lab computers - > which is somewhat unconventional, but it stands up to the > implementation! Thanks for all your help and support! > > -Gary > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@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 -~----------~----~----~----~------~----~------~--~---