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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'manifests/install.pp', line 3

class tor::install {

  if $tor::use_upstream_repository and $facts['os']['family'] == '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 => file,
        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 $facts['os']['family'] != 'Debian' {
    fail("Unsupported managed repository for osfamily: ${facts['os']['family']}, operatingsystem: ${facts['os']['name']}, module ${module_name} currently only supports upstream repository for osfamily Debian") # lint:ignore:80chars
  }

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

  if $tor::arm {
    package {
      'nyx':
        ensure => $tor::arm_version;

      'tor-arm':
        ensure => purged;
    }
    notify {
      '[tor] *** DEPRECATION WARNING***: the "tor::arm" variable has been renamed "tor::nyx". The old variable will eventually be removed.':
    }
    notify {
      '[tor] *** DEPRECATION WARNING***: the "tor::arm_version" variable has been renamed "tor::nyx_version". The old variable will eventually be removed.':
    }
  }
  elsif $tor::nyx {
    package {
      'nyx':
        ensure => $tor::nyx_version;

      'tor-arm':
        ensure => purged;
    }
  }

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