Hi *,

we have plans to handle the update process of puppet related packages by
our local update server. However, for now we need do deal with the
situation by fetching the respective rpms to the client and install them
by using the rpm provider.

So in order to proceed with the installation I would like to check if
the latest version is already installed before puppet tries to
install/update it, to get rid of the following error log message:

-----------------------------------<-------------------------------------
node # puppetd -o --server puppet.domain.tld --waitforcert 60 --test
[...]
err: /Stage[main]/Puppet::Client::Rollout/Package[puppet]/ensure: change
from 2.6.4-27.1 to Header-V3 failed: Could not update: Execution of
'/bin/rpm -U --oldpackage /tmp/puppet-2.6.4-27.1.x86_64.rpm' returned 1:
warning: /tmp/puppet-2.6.4-27.1.x86_64.rpm: Header V3 DSA signature:
NOKEY, key ID 5c43a8d9
        package puppet-2.6.4-27.1.x86_64 is already installed
 at /etc/puppet/manifests/classes/puppet.pp:42
[...]
----------------------------------->-------------------------------------

This error occurs anytime if the latest version of the package is
already installed. I tried to use the "onlyif" and "unless" parameters
but according to the latest type reference under
"http://docs.puppetlabs.com/references/latest/type.html"; these seem to
be not supported, neither by the resource type "file" nor by resource
type "package".

/etc/puppet/manifests/classes/puppet.pp
----------------------------------->-------------------------------------
class puppet {

  class client {

    class rollout {

      $mypuppetversion = "2.6.4-27.1"
      $myfacterversion = "1.5.8-6.1"
      $myrshadowversion = "1.4.1-4.1"

      file {
          "/tmp/facter-$myfacterversion.x86_64.rpm":
            source =>
"puppet://puppet.domain.tld/files/rpm-sles11sp1/facter-$myfacterversion.x86_64.rpm";
          "/tmp/puppet-$mypuppetversion.x86_64.rpm":
            source =>
"puppet://puppet.domain.tld/files/rpm-sles11sp1/puppet-$mypuppetversion.x86_64.rpm";
          "/tmp/ruby-shadow-$myrshadowversion.x86_64.rpm":
            source =>
"puppet://puppet.domain.tld/files/rpm-sles11sp1/ruby-shadow-$myrshadowversion.x86_64.rpm";
      }

      package {
         "facter":
            ensure   => latest,
            name     => "facter",
            provider => rpm,
            source   => "/tmp/facter-$myfacterversion.x86_64.rpm",
            require  => file["/tmp/facter-$myfacterversion.x86_64.rpm"];
         "puppet":
            ensure   => latest,
            name     => "puppet",
            provider => rpm,
            source   => "/tmp/puppet-$mypuppetversion.x86_64.rpm",
            require  => file["/tmp/puppet-$mypuppetversion.x86_64.rpm"];
         "ruby-shadow":
            ensure   => latest,
            name     => "ruby-shadow",
            provider => rpm,
            source   => "/tmp/ruby-shadow-$myrshadowversion.x86_64.rpm",
            require  =>
file["/tmp/ruby-shadow-$myrshadowversion.x86_64.rpm"];
      }

      service {
         "puppet":
            enable   => true,
            ensure   => running,
            restart  => true,
            name     => "puppet";
      }

    }

  }

}
-----------------------------------<-------------------------------------

I hope that somebody got the point because as every time I'm totally
sure that I missed some peace of documentation and of course there is
always a better way to handle such situations? :)

Thanks in advance
Jan

-- 
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.

Reply via email to