On Fri, 08 Oct 2010 16:20:39 -0700, Jacob Helwig wrote: > Date: Fri, 8 Oct 2010 16:20:39 -0700 > From: Jacob Helwig <ja...@puppetlabs.com> > To: puppet-users@googlegroups.com > Subject: Re: [Puppet Users] Re: How to update a package using puppet and a > .deb file > User-Agent: Mutt/1.5.20 (2009-06-14) > Message-ID: <20101008232039.ge15...@vfa-6z.perlninja.com> > > On Fri, 08 Oct 2010 13:53:26 -0700, Tim C wrote: > > > > On Oct 7, 11:46 am, Tim C <tcolli...@gmail.com> wrote: > > > I am trying to figure out the proper way to update/upgrade a deb > > > package using puppet from a local source deb file. My current config > > > looks like this... > > > > > > class adobe-air-2-0-4 { > > > > > > file { "/opt/air-debs": > > > ensure => directory > > > } > > > > > > file { "/opt/air-debs/adobeair-2.0.4.deb": > > > owner => root, > > > group => root, > > > mode => 644, > > > ensure => present, > > > source => "puppet://puppet/adobe-air-2-0-4/adobeair-2.0.4.deb" > > > } > > > > > > package { "adobeair": > > > provider => dpkg, > > > ensure => installed, > > > source => "/opt/air-debs/adobeair-2.0.4.deb" > > > } > > > > > > } > > > > > > I first copy the deb file down to the client machine and then use > > > 'package' with the provider set to 'dpkg'. This works and I get the > > > correct version installed. > > > > > > My question is what is the proper way to update this package in the > > > future. Can I simply change out the source file and puppet will know > > > that it's a different version and update this package? How does puppet > > > determine what version of a package it has installed versus the > > > version of the source deb file? > > > > > > I am pretty new to puppet, so if you have an suggestions for > > > improvements to my existing config they are very much appreciated. > > > > > > I have also posted this question > > > here...http://serverfault.com/questions/188632/how-to-update-a-package-using... > > > > Can anyone help me with this or point me in the right direction? Do I > > have to use a package repository to ensure a correct version or can I > > do it using the approach below? > > > > Tim, > > I've never really used the dpkg provider before, but a quick test seems > to indicate that just changing the source file isn't sufficient to get > the new version installed. > > Installing first with: > > package { "puppet-dashboard": > provider => dpkg, > ensure => installed, > source => "/tmp/puppet-dashboard_1.0.4rc2-1_all.deb" > } > > Then changing the source to be: > > package { "puppet-dashboard": > provider => dpkg, > ensure => installed, > source => "/tmp/puppet-dashboard_1.0.4rc2-2_all.deb" > } > > The 1.0.4rc2-2 version is not installed. > > Off hand, I'm not sure what the right way to do it would be, but I can > confirm that just changing the source with the dpkg provider is not > sufficient. > > -- > Jacob Helwig
Well, Nan just suggested that we try "ensure => latest", and that _does_ get it to upgrade the package, when the source line is changed. So... Something like the following for the package should get what you want: package { "puppet-dashboard": provider => dpkg, ensure => latest, source => "/tmp/puppet-dashboard_1.0.4rc2-1_all.deb" } -- Jacob Helwig
signature.asc
Description: Digital signature