mediawiki.pp 5.85 KB
Newer Older
mh's avatar
mh committed
1
2
3
4
5
6
7
8
9
10
11
12
13
# domainalias:
#   - www: add as well a www.${name} entry
#   - absent: do nothing
#   - default: add the string
# user_provider:
#   - local: user will be crated locally (*default*)
#   - everything else will currently do noting
# run_mode:
#   - normal: nothing special (*default*)
#   - itk: apache is running with the itk module
#          and run_uid and run_gid are used as vhost users
# run_uid: the uid the vhost should run as with the itk module
# run_gid: the gid the vhost should run as with the itk module
mh's avatar
mh committed
14
15
16
17
18
19
#
# logmode:
#   - default: Do normal logging to CustomLog and ErrorLog
#   - nologs: Send every logging to /dev/null
#   - anonym: Don't log ips for CustomLog, send ErrorLog to /dev/null
#   - semianonym: Don't log ips for CustomLog, log normal ErrorLog
mh's avatar
mh committed
20
define webhosting::php::mediawiki(
mh's avatar
mh committed
21
22
    $ensure = present,
    $uid = 'absent',
mh's avatar
mh committed
23
    $uid_name = 'absent',
mh's avatar
mh committed
24
    $gid = 'uid',
25
    $gid_name = 'absent',
mh's avatar
mh committed
26
27
28
29
30
    $user_provider = 'local',
    $password = 'absent',
    $password_crypted = true,
    $domainalias = 'www',
    $server_admin = 'absent',
mh's avatar
mh committed
31
    $logmode = 'default',
mh's avatar
mh committed
32
33
34
35
36
37
38
    $owner = root,
    $group = 'sftponly',
    $run_mode = 'normal',
    $run_uid = 'absent',
    $run_uid_name = 'absent',
    $run_gid = 'absent',
    $run_gid_name = 'absent',
39
    $allow_override = 'FileInfo Limit',
mh's avatar
mh committed
40
41
42
43
    $options = 'absent',
    $additional_options = 'absent',
    $default_charset = 'absent',
    $ssl_mode = false,
mh's avatar
mh committed
44
45
    $php_settings = {},
    $php_options = {},
mh's avatar
mh committed
46
    $vhost_mode = 'template',
mh's avatar
mh committed
47
    $template_partial = 'absent',
mh's avatar
mh committed
48
49
50
51
52
    $vhost_source = 'absent',
    $vhost_destination = 'absent',
    $htpasswd_file = 'absent',
    $nagios_check = 'ensure',
    $nagios_check_domain = 'absent',
53
    $nagios_check_url = '/',
54
    $nagios_check_code = 'OK',
mh's avatar
mh committed
55
    $nagios_use = 'generic-service',
mh's avatar
mh committed
56
57
58
59
60
61
62
63
64
65
66
    $mod_security = true,
    $image = 'absent',
    $config = 'unmanaged',
    $db_server = 'unmanaged',
    $db_name = 'unmanaged',
    $db_user = 'unmanaged',
    $db_pwd = 'unmanaged',
    $contact = 'unmanaged',
    $sitename = 'unmanaged',
    $secret_key = 'unmanaged',
    $squid_servers = 'absent',
mh's avatar
mh committed
67
    $file_extensions = 'absent',
mh's avatar
mh committed
68
    $extensions = 'absent',
69
70
    $language = 'de',
    $hashed_upload_dir = true
mh's avatar
mh committed
71
){
mh's avatar
mh committed
72
73
74
75
76
    if ($uid_name == 'absent'){
      $real_uid_name = $name
    } else {
      $real_uid_name = $uid_name
    }
77
78
79
80
81
    if ($gid_name == 'absent'){
      $real_gid_name = $real_uid_name
    } else {
      $real_gid_name = $gid_name
    }
mh's avatar
mh committed
82
83
84
    webhosting::common{$name:
        ensure => $ensure,
        uid => $uid,
85
        uid_name => $real_uid_name,
mh's avatar
mh committed
86
        gid => $gid,
87
        gid_name => $real_gid_name,
mh's avatar
mh committed
88
89
90
91
92
93
94
95
96
97
98
99
100
        user_provider => $user_provider,
        password => $password,
        password_crypted => $password_crypted,
        htpasswd_file => $htpasswd_file,
        ssl_mode => $ssl_mode,
        run_mode => $run_mode,
        run_uid => $run_uid,
        run_uid_name => $run_uid_name,
        run_gid => $run_gid,
        nagios_check => $nagios_check,
        nagios_check_domain => $nagios_check_domain,
        nagios_check_url => $nagios_check_url,
        nagios_check_code => $nagios_check_code,
mh's avatar
mh committed
101
        nagios_use => $nagios_use,
mh's avatar
mh committed
102
103
104
105
106
107
    }

    apache::vhost::php::mediawiki{"${name}":
        ensure => $ensure,
        domainalias => $domainalias,
        server_admin => $server_admin,
mh's avatar
mh committed
108
        logmode => $logmode,
mh's avatar
mh committed
109
110
111
112
113
114
115
116
        group => $group,
        manage_docroot => false,
        allow_override => $allow_override,
        options => $options,
        additional_options => $additional_options,
        default_charset => $default_charset,
        run_mode => $run_mode,
        ssl_mode => $ssl_mode,
mh's avatar
mh committed
117
118
        php_settings => $php_settings,
        php_options => $php_options,
mh's avatar
mh committed
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
        vhost_mode => $vhost_mode,
        vhost_source => $vhost_source,
        vhost_destination => $vhost_destination,
        htpasswd_file => $htpasswd_file,
        mod_security => $mod_security,
    }
    mediawiki::instance{$name:
      ensure => $ensure,
      image => $image,
      config => $config,
      db_server => $db_server,
      db_name => $db_name,
      db_user => $db_user,
      db_pwd => $db_pwd,
      contact => $contact,
      sitename => $sitename,
mh's avatar
mh committed
135
      secret_key => $secret_key,
mh's avatar
mh committed
136
      file_extensions => $file_extensions,
mh's avatar
mh committed
137
138
139
      extensions => $extensions,
      squid_servers => $squid_servers,
      language => $language,
140
      hashed_upload_dir => $hashed_upload_dir,
mh's avatar
mh committed
141
142
143
      documentroot_write_mode => 0660,
    }

mh's avatar
mh committed
144
145
    case $run_mode {
        'itk','proxy-itk','static-itk': {
mh's avatar
mh committed
146
147
148
149
150
151
          if ($run_uid_name == 'absent'){
            $real_run_uid_name = "${name}_run"
          } else {
            $real_run_uid_name = $run_uid_name
          }
          if ($run_gid_name == 'absent'){
mh's avatar
mh committed
152
153
154
155
            $real_run_gid_name = $gid_name ? {
              'absent' => $name,
              default => $gid_name
            }
mh's avatar
mh committed
156
157
158
159
          } else {
            $real_run_gid_name = $run_gid_name
          }
          Apache::Vhost::Php::Mediawiki[$name]{
mh's avatar
mh committed
160
            documentroot_owner => $real_uid_name,
161
            documentroot_group => $real_gid_name,
mh's avatar
mh committed
162
163
            run_uid => $real_run_uid_name,
            run_gid => $real_run_gid_name,
mh's avatar
mh committed
164
            require => [ User::Sftp_only["${real_uid_name}"], User::Managed["${real_run_uid_name}"] ],
mh's avatar
mh committed
165
166
          }
          Mediawiki::Instance[$name]{
mh's avatar
mh committed
167
            documentroot_owner => $real_uid_name,
168
            documentroot_group => $real_gid_name,
mh's avatar
mh committed
169
            documentroot_mode => 0640,
mh's avatar
mh committed
170
            require => [ User::Sftp_only["${real_uid_name}"], User::Managed["${real_run_uid_name}"] ],
mh's avatar
mh committed
171
172
          }
      }
mh's avatar
mh committed
173
174
175
176
177
178
179
      default: {
        Apache::Vhost::Php::Mediawiki[$name]{
          require => User::Sftp_only["${real_uid_name}"],
        }
        Mediawiki::Instance[$name]{
          require => User::Sftp_only["${real_uid_name}"],
        }
mh's avatar
mh committed
180
181
      }
    }
mh's avatar
mh committed
182
183
184
185
186
    if $template_partial != 'absent' {
      Apache::Vhost::Php::Mediawiki[$name]{
        template_partial => $template_partial
      }
    }
mh's avatar
mh committed
187
188
}