Defined Type: apt::keyring

Defined in:
manifests/keyring.pp

Summary

Manage GPG keyrings for apt repositories

Overview

Examples:

Download the puppetlabs apt keyring

apt::keyring { 'puppetlabs-keyring.gpg':
  source => 'https://apt.puppetlabs.com/keyring.gpg',
}

Deploy the apt source and associated keyring file

apt::source { 'puppet8-release':
  location => 'http://apt.puppetlabs.com',
  repos    => 'puppet8',
  key      => {
    name   => 'puppetlabs-keyring.gpg',
    source => 'https://apt.puppetlabs.com/keyring.gpg'
  }
}

Parameters:

  • dir (Stdlib::Absolutepath) (defaults to: '/etc/apt/keyrings')

    Path to the directory where the keyring will be stored.

  • filename (String[1]) (defaults to: $name)

    Optional filename for the keyring. It should also contain extension along with the filename.

  • mode (Stdlib::Filemode) (defaults to: '0644')

    File permissions of the keyring.

  • source (Optional[Stdlib::Filesource]) (defaults to: undef)

    Source of the keyring file. Mutually exclusive with ‘content’.

  • content (Optional[String[1]]) (defaults to: undef)

    Content of the keyring file. Mutually exclusive with ‘source’.

  • ensure (Enum['present','absent']) (defaults to: 'present')

    Ensure presence or absence of the resource.



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'manifests/keyring.pp', line 35

define apt::keyring (
  Stdlib::Absolutepath $dir = '/etc/apt/keyrings',
  String[1] $filename = $name,
  Stdlib::Filemode $mode = '0644',
  Optional[Stdlib::Filesource] $source = undef,
  Optional[String[1]] $content = undef,
  Enum['present','absent'] $ensure = 'present',
) {
  ensure_resource('file', $dir, { ensure => 'directory', mode => '0755', })
  if $source and $content {
    fail("Parameters 'source' and 'content' are mutually exclusive")
  } elsif ! $source and ! $content {
    fail("One of 'source' or 'content' parameters are required")
  }

  $file = "${dir}/${filename}"

  case $ensure {
    'present': {
      file { $file:
        ensure  => 'file',
        mode    => $mode,
        owner   => 'root',
        group   => 'root',
        source  => $source,
        content => $content,
      }
    }
    'absent': {
      file { $file:
        ensure => $ensure,
      }
    }
    default: {
      fail("Invalid 'ensure' value '${ensure}' for apt::keyring")
    }
  }
}