Puppet Class: eduvpn::repos

Defined in:
manifests/repos.pp

Overview

Parameters:

  • manage_repos (Boolean) (defaults to: $eduvpn::manage_repos)
  • repo_version (String[1]) (defaults to: $eduvpn::repo_version)
  • repo_prefix (Stdlib::Httpsurl) (defaults to: $eduvpn::repo_prefix)
  • dist_dir (Optional[String[1]]) (defaults to: $eduvpn::dist_dir)


3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'manifests/repos.pp', line 3

class eduvpn::repos (
  Boolean $manage_repos = $eduvpn::manage_repos,
  String[1] $repo_version = $eduvpn::repo_version,
  Stdlib::Httpsurl $repo_prefix = $eduvpn::repo_prefix,
  Optional[String[1]] $dist_dir = $eduvpn::dist_dir,
) {
  if $manage_repos {
    case $facts['os']['family'] {
      'RedHat': {
        yumrepo { 'python-eduvpn-client':
          descr    => "eduVPN for Linux ${repo_version}",
          baseurl  => "${repo_prefix}/${repo_version}/rpm/${dist_dir}",
          gpgkey   => "${repo_prefix}/${repo_version}/rpm/app+linux@eduvpn.org.asc",
          gpgcheck => true,
          enabled  => true,
        }
      }
      'Debian': {
        apt::keyring { "eduvpn-${repo_version}.gpg":
          source => "${repo_prefix}/${repo_version}/deb/app+linux@eduvpn.org.gpg",
        }
        apt::source { "eduvpn-${repo_version}":
          comment  => "eduVPN for Linux ${repo_version}",
          types    => ['deb'],
          location => "${repo_prefix}/${repo_version}/deb/",
          repos    => ['main'],
          keyring  => "/etc/apt/keyrings/eduvpn-${repo_version}.gpg",
        }
      }
      default: {
        fail("Unknown os.family fact ${facts['os']['family']}, not supported")
      }
    }
  }
}