Alexandros Kosiaris has submitted this change and it was merged.

Change subject: Introduce role::mariadb::backup
......................................................................


Introduce role::mariadb::backup

Include backup host
Get the credentials and use them to dump all the databases one by one,
then have bacula backup them. backup::mysqlset will also keep a local
copy of the last 15 days dumps
Enable on dbstore1001

Change-Id: I9b4dd318d0818cb551800178164e890925623dd2
---
M manifests/role/mariadb.pp
M manifests/site.pp
2 files changed, 48 insertions(+), 1 deletion(-)

Approvals:
  Alexandros Kosiaris: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/manifests/role/mariadb.pp b/manifests/role/mariadb.pp
index 3995871..1a1c62d 100644
--- a/manifests/role/mariadb.pp
+++ b/manifests/role/mariadb.pp
@@ -140,3 +140,43 @@
 
     mariadb::monitor_replication { ['s1', 'm2' ]: }
 }
+
+class role::mariadb::backup::config {
+    if $mariadb_backups_folder {
+        $folder = $mariadb_backups_folder
+    } else {
+        $folder = '/srv/backups'
+    }
+}
+
+class role::mariadb::backup {
+    include backup::host
+    include passwords::mysql::dump
+
+    include role::mariadb::backup::config
+    $backups_folder = $role::mariadb::backup::config::folder
+
+    file { $backups_folder:
+        ensure => directory,
+        owner  => 'root',
+        group  => 'root',
+        mode   => '0600', # implicitly 0700 for dirs
+    }
+
+    file { '/etc/mysql/conf.d/dumps.cnf':
+        ensure  => present,
+        owner   => 'root',
+        group   => 'root',
+        mode    => '0400',
+        content => 
"[client]\nuser=${passwords::mysql::dump::user}\npassword=${passwords::mysql::dump::pass}\n",
+    }
+
+    backup::mysqlset {'dbstore':
+        xtrabackup     => false,
+        per_db         => true,
+        innodb_only    => true,
+        local_dump_dir => $backups_folder,
+        password_file  => '/etc/mysql/conf.d/dumps.cnf',
+        method         => 'predump',
+    }
+}
diff --git a/manifests/site.pp b/manifests/site.pp
index 88b8f75..71e96e0 100644
--- a/manifests/site.pp
+++ b/manifests/site.pp
@@ -847,7 +847,14 @@
     include role::mariadb::tendril
 }
 
-node /^dbstore100(1|2)\.eqiad\.wmnet/ {
+node /^dbstore1001\.eqiad\.wmnet/ {
+    $cluster = 'mysql'
+    $mariadb_backups_folder = '/a/backups'
+    include role::mariadb::dbstore
+    include role::mariadb::backup
+}
+
+node /^dbstore1002\.eqiad\.wmnet/ {
     $cluster = 'mysql'
     include role::mariadb::dbstore
 }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I9b4dd318d0818cb551800178164e890925623dd2
Gerrit-PatchSet: 7
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Alexandros Kosiaris <akosia...@wikimedia.org>
Gerrit-Reviewer: Alexandros Kosiaris <akosia...@wikimedia.org>
Gerrit-Reviewer: Springle <sprin...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to