Puppet Class: profile::dbbackups::transfer
- Defined in:
- modules/profile/manifests/dbbackups/transfer.pp
Overview
SPDX-License-Identifier: Apache-2.0 Create remote xtrabackup/mariabackup backups By using transfer.py This class will setup the configuration and software needed to trigger new raw backups. If enabled, it will set up a systemd timer to schedule it. It requires the previous setup of a config at: modules/profile/templates/dbbackups/<hostname>.cnf.erb If the host has it enabled but the file hasn't been setup, puppet run will fail. Either add its custom backup configuration (see wmfbackups documentation) or disable scheduled backup taking.
-
enabled: Defaults to true. If false, it setups all
dependencies, but does not retrieve a schedule configuration nor sets up a timer.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'modules/profile/manifests/dbbackups/transfer.pp', line 16
class profile::dbbackups::transfer (
Boolean $enabled = lookup('profile::dbbackups::transfer::enabled', {'default_value' => true})
) {
require ::profile::mariadb::wmfmariadbpy
ensure_packages([
'wmfbackups-remote', # will install also wmfmariadbpy-remote and transferpy
])
# we can override transferpy defaults if needed
file { '/etc/transferpy/transferpy.conf':
ensure => present,
owner => 'root',
group => 'root',
mode => '0444',
source => 'puppet:///modules/profile/dbbackups/transferpy.conf',
}
if $enabled {
include passwords::mysql::dump
$stats_user = $passwords::mysql::dump::stats_user
$stats_password = $passwords::mysql::dump::stats_pass
# Configuration file where the daily backup routine (source hosts,
# destination, statistics db is configured
# Can contain private data like db passwords
file { '/etc/wmfbackups/remote_backups.cnf':
ensure => present,
owner => 'root',
group => 'root',
mode => '0400',
show_diff => false,
content => template("profile/dbbackups/${::hostname}.cnf.erb"),
require => Package['wmfbackups-remote'],
}
systemd::timer::job { 'database-backups-snapshots':
ensure => 'present',
user => 'root',
description => 'Generate mysql snapshot backup batch',
command => '/usr/bin/remote-backup-mariadb all',
interval => {
'start' => 'OnCalendar',
'interval' => 'Mon,Wed,Thu,Sat *-*-* 00:00:00',
},
require => [
File['/etc/wmfbackups/remote_backups.cnf'],
Package['wmfbackups-remote'],
]
}
} else {
# remove existing leftovers without dependencies
file { '/etc/wmfbackups/remote_backups.cnf':
ensure => absent,
show_diff => false,
}
systemd::timer::job { 'database-backups-snapshots':
ensure => absent,
description => 'Generate mysql snapshot backup batch',
user => 'root',
command => '/usr/bin/remote-backup-mariadb all',
interval => {
'start' => 'OnCalendar',
'interval' => 'Sun,Tue,Wed,Fri *-*-* 19:00:00',
},
}
}
}
|