Skip to content

Commit b3816a6

Browse files
committed
Add xtrabackup_package_name param to allow usage of mariabackup from the mariadb-backup package
1 parent e73d43c commit b3816a6

File tree

3 files changed

+45
-16
lines changed

3 files changed

+45
-16
lines changed

README.md

+24
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,30 @@ class { 'mysql::server::backup':
505505
}
506506
```
507507

508+
The next example shows how to use mariabackup (a fork of xtrabackup) as a backup provider.
509+
Note that on most Linux/BSD distributions, this requires setting `xtrabackup_package_name` to "mariadb-backup" in `mysql::server::backup`.
510+
511+
```puppet
512+
class { 'mysql::server':
513+
package_name => 'mariadb-server',
514+
package_ensure => '1:10.3.21+maria~xenial',
515+
service_name => 'mysqld',
516+
root_password => 'AVeryStrongPasswordUShouldEncrypt!',
517+
}
518+
519+
class { 'mysql::server::backup':
520+
backupuser => 'mariabackup',
521+
backuppassword => 'AVeryStrongPasswordUShouldEncrypt!',
522+
provider => 'xtrabackup',
523+
backupmethod => 'mariabackup'
524+
xtrabackup_package_name => 'mariadb-backup',
525+
backupdir => '/tmp/backups',
526+
backuprotate => 15,
527+
execpath => '/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin',
528+
time => ['23', '15'],
529+
}
530+
```
531+
508532
## Reference
509533

510534
### Classes

manifests/params.pp

+6-9
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
$client_dev_package_provider = undef
3838
$daemon_dev_package_ensure = 'present'
3939
$daemon_dev_package_provider = undef
40-
$xtrabackup_package_name_default = 'percona-xtrabackup'
4140

4241
case $::osfamily {
4342
'RedHat': {
@@ -61,11 +60,11 @@
6160
if versioncmp($::operatingsystemmajrelease, '7') >= 0 {
6261
$provider = 'mariadb'
6362
if versioncmp($::operatingsystemmajrelease, '8') >= 0 {
64-
$xtrabackup_package_name_override = 'percona-xtrabackup-24'
63+
$xtrabackup_package_name = 'percona-xtrabackup-24'
6564
}
6665
} else {
6766
$provider = 'mysql'
68-
$xtrabackup_package_name_override = 'percona-xtrabackup-20'
67+
$xtrabackup_package_name = 'percona-xtrabackup-20'
6968
}
7069
if versioncmp($::operatingsystemmajrelease, '8') >= 0 {
7170
$java_package_name = 'mariadb-java-client'
@@ -154,7 +153,7 @@
154153
$mycnf_owner = undef
155154
$mycnf_group = undef
156155
$server_service_name = 'mysql'
157-
$xtrabackup_package_name_override = 'xtrabackup'
156+
$xtrabackup_package_name = 'xtrabackup'
158157

159158
$ssl_ca = '/etc/mysql/cacert.pem'
160159
$ssl_cert = '/etc/mysql/server-cert.pem'
@@ -224,7 +223,7 @@
224223
if ($::operatingsystem == 'Ubuntu' and versioncmp($::operatingsystemrelease, '16.04') < 0) or
225224
($::operatingsystem == 'Ubuntu' and versioncmp($::operatingsystemrelease, '20.04') >= 0) or
226225
($::operatingsystem == 'Debian') {
227-
$xtrabackup_package_name_override = 'percona-xtrabackup-24'
226+
$xtrabackup_package_name = 'percona-xtrabackup-24'
228227
}
229228
if ($::operatingsystem == 'Ubuntu' and versioncmp($::operatingsystemrelease, '20.04') >= 0) or
230229
($::operatingsystem == 'Debian' and versioncmp($::operatingsystemrelease, '11') >= 0) {
@@ -511,10 +510,8 @@
511510
},
512511
}
513512

514-
if defined('$xtrabackup_package_name_override') {
515-
$xtrabackup_package_name = pick($xtrabackup_package_name_override, $xtrabackup_package_name_default)
516-
} else {
517-
$xtrabackup_package_name = $xtrabackup_package_name_default
513+
if !defined('$xtrabackup_package_name') {
514+
$xtrabackup_package_name = 'percona-xtrabackup'
518515
}
519516

520517
## Additional graceful failures

manifests/server/backup.pp

+15-7
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,23 @@
33
#
44
# @example Create a basic MySQL backup:
55
# class { 'mysql::server':
6-
# root_password => 'password'
6+
# root_password => 'password'
77
# }
88
# class { 'mysql::server::backup':
9-
# backupuser => 'myuser',
10-
# backuppassword => 'mypassword',
11-
# backupdir => '/tmp/backups',
9+
# backupuser => 'myuser',
10+
# backuppassword => 'mypassword',
11+
# backupdir => '/tmp/backups',
12+
# }
13+
#
14+
# @example Create a basic MySQL backup using mariabackup:
15+
# class { 'mysql::server':
16+
# root_password => 'password'
1217
# }
1318
# class { 'mysql::server::backup':
14-
# backupmethod => 'mariabackup',
15-
# provider => 'xtrabackup',
16-
# backupdir => '/tmp/backups',
19+
# backupmethod => 'mariabackup',
20+
# provider => 'xtrabackup',
21+
# backupdir => '/tmp/backups',
22+
# xtrabackup_package_name => 'mariadb-backup'
1723
# }
1824
#
1925
# @param backupuser
@@ -72,6 +78,8 @@
7278
# on the target system. Packages for it are NOT automatically installed.
7379
# @param compression_extension
7480
# Configure the file extension for the compressed backup (when using the mysqldump provider)
81+
# @param xtrabackup_package_name
82+
# Package name which provides the xtrabackup binary (when using the xtrabackup provider)
7583
class mysql::server::backup (
7684
$backupuser = undef,
7785
Optional[Variant[String, Sensitive[String]]] $backuppassword = undef,

0 commit comments

Comments
 (0)