Puppet Class: tor

Defined in:
manifests/init.pp

Overview

Parameters:

  • socks (Any) (defaults to: true)
  • socksport (Any) (defaults to: '9050')
  • sockslistenaddresses (Any) (defaults to: '127.0.0.1')
  • sockspolicies (Any) (defaults to: [ { policy => 'accept', target => '192.168.0.0/16', }, { policy => 'reject', target => '*', } ])
  • dirservers (Any) (defaults to: [])
  • usebridges (Any) (defaults to: false)
  • updatebridgesfromauthority (Any) (defaults to: true)
  • bridges (Any) (defaults to: [])
  • relay (Any) (defaults to: true)
  • orport (Any) (defaults to: '9001')
  • orlistenaddress (Any) (defaults to: '0.0.0.0:9001')
  • nickname (Any) (defaults to: 'ididnteditheconfig')
  • address (Any) (defaults to: false)
  • bridge (Any) (defaults to: false)
  • publishserverdescriptor (Any) (defaults to: true)
  • directory (Any) (defaults to: false)
  • dirport (Any) (defaults to: '9000')
  • dirlistenaddress (Any) (defaults to: '0.0.0.0:9000')
  • transport (Any) (defaults to: false)
  • translistenaddress (Any) (defaults to: '127.0.0.1')
  • dnsport (Any) (defaults to: false)
  • dnslistenaddress (Any) (defaults to: '127.0.0.1')
  • identity_key_source (Any) (defaults to: false)
  • user (Any)
  • group (Any)
  • tor_service (Any)
  • tor_package (Any)
  • repo_class (Any)


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

class tor (
    $socks                      = true,
    $socksport                  = '9050',
    $sockslistenaddresses       = '127.0.0.1',
    $sockspolicies              = [
        {
            policy => 'accept',
            target => '192.168.0.0/16',
        },
        {
            policy => 'reject',
            target => '*',
        }
    ],
    $dirservers                 = [],
    $usebridges                 = false,
    $updatebridgesfromauthority = true,
    $bridges                    = [],
    $relay                      = true,
    $orport                     = '9001',
    $orlistenaddress            = '0.0.0.0:9001',
    $nickname                   = 'ididnteditheconfig',
    $address                    = false,
    $bridge                     = false,
    $publishserverdescriptor    = true,
    $directory                  = false,
    $dirport                    = '9000',
    $dirlistenaddress           = '0.0.0.0:9000',
    $transport                  = false,
    $translistenaddress         = '127.0.0.1',
    $dnsport                    = false,
    $dnslistenaddress           = '127.0.0.1',
    $identity_key_source        = false,
    $user,
    $group,
    $tor_service,
    $tor_package,
    $repo_class,
) {

    if $repo_class {
        class { $repo_class:
            before => Package['tor'],
        }
    }

    package { 'tor':
        name   => $tor_package,
        ensure => latest,
    }

    if $identity_key_source {
        # A 1024-bit PEM format RSA private key
        file { '/var/lib/tor/keys/secret_id_key':
            ensure => present,
            owner  => $user,
            group  => $group,
            mode   => '0600',
            source => $identity_key_source,
            require => Package['tor'],
            notify  => Service['tor'],
        }
    }

    concat { '/etc/tor/torrc':
        owner   => 'root',
        group   => 'root',
        require => Package['tor'],
        notify  => Service['tor'],
    }

    concat::fragment { 'torrc-main':
        target  => '/etc/tor/torrc',
        content => template('tor/torrc.erb'),
        order   => '00',
    }

    service { 'tor':
        name   => $tor_service,
        ensure => running,
    }

}