Page MenuHomeDevCentral

D3736.id9667.diff
No OneTemporary

D3736.id9667.diff

diff --git a/map.jinja b/map.jinja
--- a/map.jinja
+++ b/map.jinja
@@ -188,6 +188,7 @@
'librabbitmq': 'rabbitmq-c',
'lua': 'lua51',
'mariadb': 'mariadb1011-server',
+ 'mariadb-client': 'mariadb1011-client',
'node': 'node',
'pear': 'pear',
'phpcs': 'pear-PHP_CodeSniffer',
diff --git a/pillar/credentials/vault.sls b/pillar/credentials/vault.sls
--- a/pillar/credentials/vault.sls
+++ b/pillar/credentials/vault.sls
@@ -249,6 +249,7 @@
saas-mediawiki:
- ops/secrets/dbserver/cluster-B/users/saas-mediawiki
+ - ops/secrets/dbserver/cluster-B/users/saas-mw-deploy
- ops/secrets/nasqueron/mediawiki/secret_key
saas-wordpress:
diff --git a/pillar/dbserver/cluster-B.sls b/pillar/dbserver/cluster-B.sls
--- a/pillar/dbserver/cluster-B.sls
+++ b/pillar/dbserver/cluster-B.sls
@@ -1,9 +1,27 @@
+# -------------------------------------------------------------
+# YAML aliases to use in MariaDB server configuration
+#
+# Those pillar entries are not directly used in Salt states;
+# they define aliases to be used below in this YAML pillar.
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
dbserver_mysql_aliases:
hosts:
- &viperserv 172.27.27.33
- &windriver 172.27.27.35
- &web-001 172.27.27.10
+dbserver_mysql_privileges_templates:
+ interwiki: &interwiki
+ scope: table
+ privileges: SELECT, INSERT, DELETE
+ tables:
+ - interwiki
+
+# -------------------------------------------------------------
+# Configuration for MariaDB server to provision
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
dbserver_mysql:
server:
@@ -48,6 +66,16 @@
- database: nasqueron_wiki
scope: database
+ saas-mw-deploy:
+ password: dbserver/cluster-B/users/saas-mw-deploy
+ host: *web-001
+ privileges:
+ - database: nasqueron_wiki
+ <<: *interwiki
+
+ - database: wolfplexdb
+ <<: *interwiki
+
###
### Nasqueron members
###
diff --git a/pillar/saas/mediawiki.sls b/pillar/saas/mediawiki.sls
--- a/pillar/saas/mediawiki.sls
+++ b/pillar/saas/mediawiki.sls
@@ -44,6 +44,7 @@
credentials:
db: dbserver/cluster-B/users/saas-mediawiki
+ maintenance: dbserver/cluster-B/users/saas-mw-deploy
secret_key: nasqueron/mediawiki/secret_key
mediawiki_datastores:
@@ -65,3 +66,20 @@
- inidal.espace-win.org
- utopia.espace-win.org
- www.wolfplex.org
+
+mediawiki_databases:
+ agora: nasqueron_wiki
+ wolfplex: wolfplexdb
+
+mediawiki_interwikis:
+ # Interwikis for Nasqueron Agora
+ nasqueron_wiki:
+ wolfplex:
+ wiki_id: wolfplexdb
+ url: https://www.wolfplex.org/wiki/$1
+
+ # Interwikis for Wolfplex
+ wolfplexdb:
+ agora:
+ wiki_id: nasqueron_wiki
+ url: https://agora.nasqueron.org/$1
diff --git a/roles/saas-mediawiki/mediawiki/files/interwiki/interwiki.sql.jinja b/roles/saas-mediawiki/mediawiki/files/interwiki/interwiki.sql.jinja
new file mode 100644
--- /dev/null
+++ b/roles/saas-mediawiki/mediawiki/files/interwiki/interwiki.sql.jinja
@@ -0,0 +1,24 @@
+-- -------------------------------------------------------------
+-- Interwiki map for SaaS MediaWiki instances.
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- Project: Nasqueron
+-- License: Trivial work, not eligible to copyright
+-- Dependencies: Schema for MediaWiki 1.17+, still valid for 1.45
+-- Source file: roles/saas-mediawiki/mediawiki/files/interwiki/interwiki.sql.jinja
+-- -------------------------------------------------------------
+--
+-- <auto-generated>
+-- This file is managed by our rOPS SaltStack repository.
+--
+-- Changes to this file may cause incorrect behavior
+-- and will be lost if the state is redeployed.
+-- </auto-generated>
+
+{% for database, links in interwiki.items() %}
+{% for prefix, args in links.items() %}
+REPLACE INTO {{ database }}.interwiki
+ (iw_prefix, iw_url, iw_api, iw_wikiid, iw_local, iw_trans)
+VALUES
+ ('{{ prefix }}', '{{ args.url }}', NULL, '{{ args.wiki_id }}', 0, 0);
+{% endfor %}
+{% endfor %}
diff --git a/roles/saas-mediawiki/mediawiki/init.sls b/roles/saas-mediawiki/mediawiki/init.sls
--- a/roles/saas-mediawiki/mediawiki/init.sls
+++ b/roles/saas-mediawiki/mediawiki/init.sls
@@ -8,3 +8,4 @@
include:
- .software
- .config
+ - .interwiki
diff --git a/roles/saas-mediawiki/mediawiki/interwiki.sls b/roles/saas-mediawiki/mediawiki/interwiki.sls
new file mode 100644
--- /dev/null
+++ b/roles/saas-mediawiki/mediawiki/interwiki.sls
@@ -0,0 +1,30 @@
+# -------------------------------------------------------------
+# Salt — MediaWiki farm
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# Project: Nasqueron
+# License: Trivial work, not eligible to copyright
+# -------------------------------------------------------------
+
+{% set secret = salt["credentials.read_secret"](
+ pillar["mediawiki_saas"]["credentials"]["maintenance"]
+) %}
+
+/srv/saas/mediawiki-maintenance/interwiki.sql:
+ file.managed:
+ - source: salt://roles/saas-mediawiki/mediawiki/files/interwiki/interwiki.sql.jinja
+ - makedirs: True
+ - user: mediawiki
+ - group: mediawiki
+ - mode: 644
+ - template: jinja
+ - context:
+ interwiki: {{ pillar['mediawiki_interwikis'] }}
+
+mediawiki_populate_interwiki:
+ cmd.run:
+ - name: |
+ mysql -h{{ pillar["mediawiki_saas"]["db"]["host"] }} \
+ -u{{ secret.username }} -p{{ secret.password }} \
+ < /srv/saas/mediawiki-maintenance/interwiki.sql
+ - onchanges:
+ - file: /srv/saas/mediawiki-maintenance/interwiki.sql
diff --git a/roles/saas-mediawiki/software/init.sls b/roles/saas-mediawiki/software/init.sls
--- a/roles/saas-mediawiki/software/init.sls
+++ b/roles/saas-mediawiki/software/init.sls
@@ -21,6 +21,7 @@
- {{ packages['jpeg-turbo'] }}
- librsvg2
- {{ packages.lua }}
+ - {{ packages['mariadb-client'] }}
- {{ packages_prefixes.php }}opcache
- rlwrap

File Metadata

Mime Type
text/plain
Expires
Mon, Oct 20, 11:00 (21 h, 26 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3089261
Default Alt Text
D3736.id9667.diff (6 KB)

Event Timeline