aboutsummaryrefslogtreecommitdiffstats
path: root/modules/mediawiki/manifests/instance.pp
blob: 9e09c354928788f41d6ad0b2eee09a6ed270488f (plain)
1
2
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
define mediawiki::instance( $title,
                            $wiki_settings = '',
                            $skinsdir = '/usr/share/mediawiki/skins') {

    include mediawiki::base

    $path = $name
    $lang = $name
    $wiki_root = "${mediawiki::base::root}/${path}"
    $db_name = "mediawiki_${name}"
    $db_user = $mediawiki::base::user
    $db_password = $mediawiki::config::pgsql_password
    $secret_key = $mediawiki::config::secretkey
    $ldap_password = $mediawiki::config::ldap_password
    $includedir = "/usr/share/mediawiki/includes"
    $maintenancedir = "/usr/share/mediawiki/maintenance"
    $vendordir = "/usr/share/mediawiki/vendor"

    file { $wiki_root:
        ensure => directory
    }

    file { "${wiki_root}/skins":
        ensure  => link,
        target  => $skinsdir,
        require => File[$wiki_root],
    }
    file { "${wiki_root}/includes":
        ensure  => link,
        target  => $includedir,
        require => File[$wiki_root],
    }

    file { "${wiki_root}/maintenance":
        ensure  => link,
        target  => $maintenancedir,
        require => File[$wiki_root],
    }

    file { "${wiki_root}/vendor":
        ensure  => link,
        target  => $vendordir,
        require => File[$wiki_root],
    }

    exec { "wikicreate ${name}":
        command => "mediawiki-create ${wiki_root}",
        cwd     => $mediawiki::base::root,
        require => [File[$wiki_root],Package['mediawiki']],
        creates => "${wiki_root}/index.php",
    }

    postgresql::remote_database { $db_name:
        user            => $db_user,
        callback_notify => Exec["deploy_db ${name}"],
    }

    exec { "deploy_db ${name}":
        command     => "php /usr/local/bin/init_wiki.php ${wiki_root}",
        refreshonly => true,
        onlyif      => "/usr/bin/test -d ${wiki_root}/config",
    }

    file { "${wiki_root}/LocalSettings.php":
        owner   => 'apache',
        mode    => '0600',
        content => template('mediawiki/LocalSettings.php'),
        # if LocalSettings is created first, the wikicreate script
        # do not create a confg directory, and so it doesn't
        # trigger deploy_db exec
        require => Exec["wikicreate ${name}"],
    }
}