diff options
Diffstat (limited to 'modules/mediawiki/manifests')
| -rw-r--r-- | modules/mediawiki/manifests/base.pp | 20 | ||||
| -rw-r--r-- | modules/mediawiki/manifests/config.pp | 4 | ||||
| -rw-r--r-- | modules/mediawiki/manifests/instance.pp | 80 |
3 files changed, 80 insertions, 24 deletions
diff --git a/modules/mediawiki/manifests/base.pp b/modules/mediawiki/manifests/base.pp index 52600ac1..76c8625b 100644 --- a/modules/mediawiki/manifests/base.pp +++ b/modules/mediawiki/manifests/base.pp @@ -3,17 +3,27 @@ class mediawiki::base { $vhost = $mediawiki::config::vhost $root = $mediawiki::config::root - package { ['mediawiki-minimal','mediawiki-ldapauthentication']: } + package { ['mediawiki','mediawiki-ldapauthentication']: } file { $mediawiki::config::root: ensure => directory, } - file { '/usr/local/bin/init_wiki.php': - mode => '0755', - source => 'puppet:///modules/mediawiki/init_wiki.php', + $wiki_root = $mediawiki::config::root + $robotsfile = "$wiki_root/robots.txt" + file { $robotsfile: + ensure => present, + mode => '0644', + owner => root, + group => root, + source => 'puppet:///modules/mediawiki/robots.txt', } +# file { '/usr/local/bin/init_wiki.php': +# mode => '0755', +# source => 'puppet:///modules/mediawiki/init_wiki.php', +# } + $user = 'mediawiki' postgresql::remote_user { $user: @@ -25,7 +35,7 @@ class mediawiki::base { if $vhost { apache::vhost::redirect_ssl { $vhost: } - apache::vhost::base { "ssl_$vhost": + apache::vhost::base { "ssl_${vhost}": location => $root, use_ssl => true, vhost => $vhost, diff --git a/modules/mediawiki/manifests/config.pp b/modules/mediawiki/manifests/config.pp index 1375ea0b..0c54cdf6 100644 --- a/modules/mediawiki/manifests/config.pp +++ b/modules/mediawiki/manifests/config.pp @@ -1,9 +1,9 @@ # the class is just here to handle global configuration # a smart variation of the methods exposed on -# http://puppetlabs.com/blog/the-problem-with-separating-data-from-puppet-code/ +# https://puppetlabs.com/blog/the-problem-with-separating-data-from-puppet-code/ class mediawiki::config( $pgsql_password, $secretkey, $ldap_password, - $vhost = "wiki.$::domain", + $vhost = "wiki.${::domain}", $root = '/srv/wiki/') {} diff --git a/modules/mediawiki/manifests/instance.pp b/modules/mediawiki/manifests/instance.pp index 301c9809..c6906449 100644 --- a/modules/mediawiki/manifests/instance.pp +++ b/modules/mediawiki/manifests/instance.pp @@ -6,49 +6,95 @@ define mediawiki::instance( $title, $path = $name $lang = $name - $wiki_root = "$mediawiki::base::root/$path" - $db_name = "mediawiki_$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" + $resourcesdir = "/usr/share/mediawiki/resources" + $extensionsdir = "/usr/share/mediawiki/extensions" file { $wiki_root: ensure => directory } - file { "$wiki_root/skins": + file { "${wiki_root}/skins": ensure => link, target => $skinsdir, require => File[$wiki_root], } + file { "${wiki_root}/includes": + ensure => link, + target => $includedir, + require => File[$wiki_root], + } - exec { "wikicreate $name": - command => "mediawiki-create $wiki_root", - cwd => $mediawiki::base::root, - require => [File[$wiki_root],Package['mediawiki-minimal']], - creates => "$wiki_root/index.php", + file { "${wiki_root}/maintenance": + ensure => link, + target => $maintenancedir, + require => File[$wiki_root], + } + + file { "${wiki_root}/vendor": + ensure => link, + target => $vendordir, + require => File[$wiki_root], + } + + file { "${wiki_root}/resources": + ensure => link, + target => $resourcesdir, + require => File[$wiki_root], } - postgresql::remote_database { $db_name: - user => $db_user, - callback_notify => Exec["deploy_db $name"], + file { "${wiki_root}/extensions": + ensure => link, + target => $extensionsdir, + require => File[$wiki_root], } - 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}/cache": + ensure => directory, + owner => apache, + mode => '0755', } - file { "$wiki_root/LocalSettings.php": + file { "${wiki_root}/tmp": + ensure => directory, + owner => apache, + mode => '0755', + } + + 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"], + require => Exec["wikicreate ${name}"], } } |
