Puppet Class: tor::daemon::base

Inherits:
tor::daemon::params
Defined in:
manifests/daemon/base.pp

Summary

Extend basic Tor configuration with a snippet based configuration. Base module.

Overview

Parameters:

  • user (String) (defaults to: $tor::daemon::params::user)

    Unix user for the tor process.

  • group (String) (defaults to: $tor::daemon::params::group)

    Unix group for the tor process.

  • manage_user (Boolean) (defaults to: $tor::daemon::params::manage_user)

    If Puppet should manage the tor process unix user and group

  • data_dir_mode (Stdlib::Filemode) (defaults to: $tor::daemon::params::data_dir_mode)

    Unix mode for the tor data directory.



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/daemon/base.pp', line 16

class tor::daemon::base (
  String $user                    = $tor::daemon::params::user,
  String $group                   = $tor::daemon::params::group,
  Boolean $manage_user            = $tor::daemon::params::manage_user,
  Stdlib::Filemode $data_dir_mode = $tor::daemon::params::data_dir_mode
) inherits tor::daemon::params {

  if $tor::daemon::params::manage_user {
    group { $tor::daemon::params::group:
      ensure    => present,
      allowdupe => false,
    }

    user { $tor::daemon::params::user:
      ensure    => present,
      allowdupe => false,
      comment   => 'tor user,,,',
      home      => $tor::data_dir,
      shell     => '/bin/false',
      gid       => $tor::daemon::params::group,
      require   => Group[$tor::daemon::params::group],
    }
  }

  # directories
  file { $tor::data_dir:
    ensure  => directory,
    mode    => $tor::daemon::params::data_dir_mode,
    owner   => $tor::daemon::params::user,
    group   => $tor::daemon::params::group,
    require => Package['tor'],
  }

  file { '/etc/tor':
    ensure  => directory,
    mode    => '0755',
    owner   => 'root',
    group   => 'root',
    require => Package['tor'],
  }

  # tor configuration file
  concat { $tor::config_file:
    mode    => '0444',
    owner   => 'root',
    group   => 'root',
    require => Package['tor'],
    notify  => Service['tor'],
  }

  # config file headers
  concat::fragment { '00.header':
    content => epp('tor/torrc/00_header.epp'),
    order   => '00',
    target  => $tor::config_file,
  }

  # global configurations
  concat::fragment { '01.global':
    content => epp('tor/torrc/01_global.epp', {
      'automap_hosts_on_resolve' => $tor::automap_hosts_on_resolve,
      'data_dir'                 => $tor::data_dir,
      'log_rules'                => $tor::log_rules,
      'safe_logging'             => $tor::safe_logging,
      'use_bridges'              => $tor::use_bridges,
    }),
    order   => '01',
    target  => $tor::config_file,
  }
}