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 <[email protected]> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> 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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.