Giuseppe Lavagetto has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/143329

Change subject: mediawiki: manage the apache config via puppet
......................................................................

mediawiki: manage the apache config via puppet

This is the first in a series of changes that will allow to manage
the mediawiki apache config using a more standard layout. For now we
just deploy apache-config via puppet using a directory resource, and
importing apache-config as plain files with a submodule.

We introduce tags so that it should be possible to release apache-config
by simply:

1) merging the change in apache-config
2) update the submodule
3) run on the saltmaster:
   salt -G 'cluster:appserver*' cmd.run 'puppet agent -t --tags 
mediawiki-config'

which should be simple enough. Also, puppet will ensure and enforce this
config on servers that were down at the moment of the deploy.

Change-Id: I43126e44e96b8ae88eb5ad1958b1ce6fe5ade9f5
Signed-off-by: Giuseppe Lavagetto <[email protected]>
---
M .gitmodules
A modules/mediawiki/files/apache/mediawiki-config
M modules/mediawiki/manifests/web.pp
A modules/mediawiki/manifests/web/config.pp
M modules/mediawiki/templates/apache/apache2.conf.erb
5 files changed, 26 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/29/143329/1

diff --git a/.gitmodules b/.gitmodules
index 7f924d5..970f57c 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -28,3 +28,6 @@
 [submodule "modules/cdh"]
        path = modules/cdh
        url = https://gerrit.wikimedia.org/r/operations/puppet/cdh
+[submodule "modules/mediawiki/files/apache/mediawiki-config"]
+       path = modules/mediawiki/files/apache/mediawiki-config
+       url = https://gerrit.wikimedia.org/r/operations/apache-config
diff --git a/modules/mediawiki/files/apache/mediawiki-config 
b/modules/mediawiki/files/apache/mediawiki-config
new file mode 160000
index 0000000..579f0f2
--- /dev/null
+++ b/modules/mediawiki/files/apache/mediawiki-config
+Subproject commit 579f0f234dc45d4cac5d1a546c32be205236145f
diff --git a/modules/mediawiki/manifests/web.pp 
b/modules/mediawiki/manifests/web.pp
index 5abfac0..0cfdf4a 100644
--- a/modules/mediawiki/manifests/web.pp
+++ b/modules/mediawiki/manifests/web.pp
@@ -2,6 +2,7 @@
 
 class mediawiki::web( $maxclients = 40 ) {
     include ::mediawiki
+    include ::mediawiki::web::config
 
     file { '/etc/apache2/apache2.conf':
         content => template('mediawiki/apache/apache2.conf.erb'),
@@ -23,12 +24,6 @@
         ensure => directory,
     }
 
-    exec { 'sync_apache_config':
-        command => '/usr/bin/rsync -av 10.0.5.8::httpdconf/ 
/usr/local/apache/conf',
-        creates => '/usr/local/apache/conf',
-        require => File['/usr/local/apache'],
-        notify  => Service['apache'],
-    }
 
     service { 'apache':
         ensure    => running,
diff --git a/modules/mediawiki/manifests/web/config.pp 
b/modules/mediawiki/manifests/web/config.pp
new file mode 100644
index 0000000..9e47fdc
--- /dev/null
+++ b/modules/mediawiki/manifests/web/config.pp
@@ -0,0 +1,18 @@
+class mediawiki::web::config ($use_local_resources = true) {
+    tag 'mediawiki', 'mediawiki-config'
+    if $use_local_resources {
+        file { '/etc/apache2/mediawiki-config':
+            ensure  => directory,
+            recurse => true,
+            source  => 'puppet:///modules/mediawiki/apache/mediawiki-config',
+            notify  => Service['apache'],
+        }
+    } else {
+        exec { 'sync_apache_config':
+            command => '/usr/bin/rsync -av 10.0.5.8::httpdconf/ 
/usr/local/apache/conf',
+            creates => '/usr/local/apache/conf',
+            require => File['/usr/local/apache'],
+            notify  => Service['apache'],
+        }
+    }
+}
diff --git a/modules/mediawiki/templates/apache/apache2.conf.erb 
b/modules/mediawiki/templates/apache/apache2.conf.erb
index 2ad7403..241be23 100644
--- a/modules/mediawiki/templates/apache/apache2.conf.erb
+++ b/modules/mediawiki/templates/apache/apache2.conf.erb
@@ -319,7 +319,11 @@
 
 NameVirtualHost *
 
+<%- if @::mediawiki::web::config::use_local_resources %>
+Include /etc/apache2/mediawiki-config/all.conf
+<%- else %>
 Include /usr/local/apache/conf/all.conf
+<% end %>
 
 # Set ETags for files to not be based on inode,
 # since that will be different on each backend server

-- 
To view, visit https://gerrit.wikimedia.org/r/143329
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I43126e44e96b8ae88eb5ad1958b1ce6fe5ade9f5
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Giuseppe Lavagetto <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to