Page Menu
Home
DevCentral
Search
Configure Global Search
Log In
Files
F12290621
D3736.id9691.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
6 KB
Referenced Files
None
Subscribers
None
D3736.id9691.diff
View Options
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: wolfplex_wiki
+ <<: *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: wolfplex_wiki
+
+mediawiki_interwikis:
+ # Interwikis for Nasqueron Agora
+ nasqueron_wiki:
+ wolfplex:
+ wiki_id: wolfplex_wiki
+ url: https://www.wolfplex.org/wiki/$1
+
+ # Interwikis for Wolfplex
+ wolfplex_wiki:
+ 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 }}', '', '{{ 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
Details
Attached
Mime Type
text/plain
Expires
Mon, Oct 20, 11:02 (21 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3089266
Default Alt Text
D3736.id9691.diff (6 KB)
Attached To
Mode
D3736: Add interwiki agora: and wolfplex:
Attached
Detach File
Event Timeline
Log In to Comment