What I particularly do is to make sure that every module has the
$package_ensure class parameter set to 'present' by default. If I want a
particular version, then I tell when I instantiate the class. One example
would be:

class a($package_ensure = 'present') {
   package { 'whatever-a' :
      ensure => $package_ensure,
      ....
   }
}

On my nodes.pp or Hiera you could say:
node 'host-a' {
  include a
}

node 'host-b' {
  class { 'a' :
     package_ensure => '1.1.2',
  }
}

That's the way I manage here. It's been working okay so far. I great help
is to have your own yum/apt repositories, so you manage versions in a more
controlled approach.

I hope it helps.

-frederiko



On Wed, Sep 25, 2013 at 6:58 AM, Chris McDermott <csmcderm...@gmail.com>wrote:

> I haven't found a solution that I'm totally happy with either, but what
> I've done in a few cases is specify particular versions with ensure. Like
> this:
>
>
> $varnish_version = $::environment ? {
>   'dev'      => '3.0.4-1.el6',
>   'staging => '3.0.4-1.el6',
>   'prod'     => '3.0.3-1.el6',
> }
>
> package { 'varnish':
>   ensure => $varnish_version
> }
> package { 'varnish-libs':
>   ensure => $varnish_version,
> }
> package { 'varnish-libs-devel':
>   ensure => $varnish_version,
> }
>
> Obviously you can't do that for every package installed on your hosts, but
> it works if you're only managing a small number with puppet. You need to
> watch out for dependencies though. Then to update your prod environment,
> for instance, you can just update the version string to match dev and
> staging. You could also move the version strings out into hiera, and manage
> them there, so all package version data is in one place.
>
> Chris
>
>
>
> On Tue, Sep 24, 2013 at 2:31 PM, François Chenais <
> francois.chen...@gmail.com> wrote:
>
>> Hello,
>>
>> I got many classes, using the well known template ...
>>
>>   package
>>      ensure => XXX
>>      notify => service
>>
>>   file
>>      require => package
>>      notify => service
>>
>>   service
>>      require => File, Package
>>
>>
>> ... with ensure value XXX set to 'latest'.
>>
>>
>> This implies that package could be updated when I change a value
>> in config file even if I don't want to update it  ... especially in
>> production ...
>>
>> A solution can be changing all ensure value to 'present' or 'installed'
>> but I'm not
>> the owner of the code so I would like to know if there is a way to
>>
>> - deactivate the package update through a command line option ?
>> - change the ensure value using
>>
>>   - a command line option
>>   - a fact
>>   - a tag
>>   - ???
>>
>>
>>
>> More generally, what's the best practice to manage software updates using
>> puppet :
>>
>> - ensure => present
>> - fix pkg repositories   :/
>> - ???
>>
>>
>> Thanks a lot
>>
>>
>>      François
>>
>>
>>
>>
>>
>>
>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Puppet Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to puppet-users+unsubscr...@googlegroups.com.
>> To post to this group, send email to puppet-users@googlegroups.com.
>> Visit this group at http://groups.google.com/group/puppet-users.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to puppet-users+unsubscr...@googlegroups.com.
> To post to this group, send email to puppet-users@googlegroups.com.
> Visit this group at http://groups.google.com/group/puppet-users.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to