Puppet Class: tor::install

Defined in:
manifests/install.pp

Summary

Manages package installation.

Overview



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
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
# File 'manifests/install.pp', line 3

class tor::install {

  if $tor::use_upstream_repository and $::osfamily == 'Debian' {
    ensure_packages('apt-transport-https')

    apt::source {
      'torproject':
        comment  => 'TorProject',
        location => '[signed-by=/usr/share/keyrings/torproject.gpg] https://deb.torproject.org/torproject.org',
        repos    => 'main',
        release  => $tor::upstream_release,
        require  => [ Package['apt-transport-https'] ];
    }

    apt::pin {
      'torproject':
        packages   => [ 'tor', 'tor-geoipdb' ],
        priority   => 1000,
        originator => 'TorProject',
        component  => 'main';

      'torproject-negative':
        packages   => '*',
        priority   => 200,
        originator => 'TorProject',
        component  => 'main';
    }

    file {
      '/usr/share/keyrings/torproject.gpg':
        ensure => present,
        source => 'puppet:///modules/tor/torproject.gpg',
        owner  => 'root',
        group  => 0,
        mode   => '0644';
    }

    package { 'tor':
      ensure  => $tor::version,
      require => Apt::Source['torproject'];
    }
  }

  elsif $tor::use_upstream_repository and $::osfamily != 'Debian' {
    fail("Unsupported managed repository for osfamily: ${::osfamily}, operatingsystem: ${::operatingsystem}, module ${module_name} currently only supports upstream repository for osfamily Debian") # lint:ignore:80chars
  }

  else {
    package { 'tor':
      ensure => $tor::version,
    }
  }

  if $tor::arm {
    package { 'tor-arm':
      ensure => $tor::arm_version,
    }
  }

  if $tor::torsocks {
    package{ 'torsocks':
      ensure => $tor::torsocks_version,
    }
  }
}