Hi, The way that i import my keys is to set the gpg key for the yum repo like so:
yumrepo { "jenkins": baseurl => "http://pkg.jenkins-ci.org/redhat", descr => "Jenkins", enabled => 1, gpgcheck => 1, gpgkey => "http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key", } Should take care of the import for you. The 'updated' issue is probably irrelevant. Cheers Den On 26/04/2012, at 9:22, Michael Harris <mich...@twofishcreative.com> wrote: > I've asked this question over on serverfault, but had no response. > > I'm trying to install Jenkins with Puppet using the manifests below. > > # init.pp > class jenkins { > include jenkins::install, jenkins::service > } > > # service.pp > class jenkins::service { > service { "jenkins": > ensure => running, > hasstatus => true, > hasrestart => true, > enable => true, > require => Class["jenkins::install"], > } > } > > # install.pp > class jenkins::install { > include jenkins::install::repo > include jenkins::install::java > > package { "jenkins": > ensure => present, > require => > Class['jenkins::install::repo','jenkins::install::java'], > } > } > > # install/repo.pp > class jenkins::install::repo { > file { "/etc/pki/rpm-gpg/jenkins-ci.org.key": > owner => root, > group => root, > mode => 0600, > source => "puppet:///jenkins/jenkins-ci.org.key" > } > > yumrepo { "jenkins": > baseurl => "http://pkg.jenkins-ci.org/redhat", > descr => "Jenkins", > enabled => 1, > gpgcheck => 1, > gpgkey => "file:///etc/pki/rpm-gpg/jenkins-ci.org.key", > require => File["/etc/pki/rpm-gpg/jenkins-ci.org.key"] > } > } > > # install/java.pp > class jenkins::install::java { > package { "java-1.6.0-openjdk": > ensure => present, > } > } > > The repo is added and the key written to the file system. However, I get the > following error. > > err: /Stage[main]/Jenkins::Install/Package[jenkins]/ensure: change > from absent to present failed: Execution of '/usr/bin/yum -d 0 -e 0 -y > install jenkins' returned 1: warning: rpmts_HdrFromFdno: Header V4 DSA > signature: NOKEY, key ID d50582e6 > Traceback (most recent call last): > File "/usr/bin/yum", line 29, in ? > yummain.user_main(sys.argv[1:], exit_code=True) > File "/usr/share/yum-cli/yummain.py", line 309, in user_main > errcode = main(args) > File "/usr/share/yum-cli/yummain.py", line 261, in main > return_code = base.doTransaction() > File "/usr/share/yum-cli/cli.py", line 410, in doTransaction > if self.gpgsigcheck(downloadpkgs) != 0: > File "/usr/share/yum-cli/cli.py", line 510, in gpgsigcheck > self.getKeyForPackage(po, lambda x, y, z: self.userconfirm()) > File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 3519, > in getKeyForPackage > keys = self._retrievePublicKey(keyurl, repo) > File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 3484, > in _retrievePublicKey > keys_info = misc.getgpgkeyinfo(rawkey, multiple=True) > File "/usr/lib/python2.4/site-packages/yum/misc.py", line 375, in > getgpgkeyinfo > raise ValueError(str(e)) > ValueError: unknown pgp packet type 17 at 706 > > This suggests to me that the key isn't being imported successfully, and `rpm > -qa gpg-pubkey` doesn't show the key. If I manually `yum install jenkins` > without the key imported I get the same error. With the key imported, the > manual installation succeeds. > > I'm successfully installing other yum repos and keys standalone (basically > the `install/repo.pp` manifest as its own module), such as EPEL, but as this > repo is only for Jenkins I wanted to include it in my Jenkins module. > > Is there something wrong with my manifests? Or some other problem? > > **UPDATE**: > > If I run this manifest on the node with `puppet apply jenkins.pp` I get the > following error. I don't know if this is part of the problem or a red herring. > > # jenkins.pp > file { "/etc/pki/rpm-gpg/jenkins-ci.org.key": > owner => root, > group => root, > mode => 0600, > source => "/root/jenkins-ci.org.key" > } > > yumrepo { "jenkins": > baseurl => "http://pkg.jenkins-ci.org/redhat", > descr => "Jenkins", > enabled => 1, > gpgcheck => 1, > gpgkey => "file:///etc/pki/rpm-gpg/jenkins-ci.org.key", > require => File["/etc/pki/rpm-gpg/jenkins-ci.org.key"] > } > > # output > warning: Could not retrieve fact fqdn > notice: > /Stage[main]//File[/etc/pki/rpm-gpg/jenkins-ci.org.key]/ensure: defined > content as '{md5}9fa06089848262c5a6383ec27fdd2575' > notice: /Stage[main]//Yumrepo[jenkins]/descr: descr changed '' to > 'Jenkins' > notice: /Stage[main]//Yumrepo[jenkins]/baseurl: baseurl changed '' to > 'http://pkg.jenkins-ci.org/redhat' > notice: /Stage[main]//Yumrepo[jenkins]/enabled: enabled changed '' to > '1' > notice: /Stage[main]//Yumrepo[jenkins]/gpgcheck: gpgcheck changed '' > to '1' > notice: /Stage[main]//Yumrepo[jenkins]/gpgkey: gpgkey changed '' to > 'file:///etc/pki/rpm-gpg/jenkins-ci.org.key' > notice: Finished catalog run in 0.11 seconds > err: /File[/var/lib/puppet/rrd]/ensure: change from absent to > directory failed: Could not set 'directory on ensure: Could not find group > puppet > err: Could not send report: Got 1 failure(s) while initializing: > change from absent to directory failed: Could not set 'directory on ensure: > Could not find group puppet > > Again, the repo is added but the key is not imported. > > Any advice would be greatly appreciated. > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/puppet-users/-/vXiEqP6KCt4J. > 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. -- 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.