mirror of
https://github.com/krislamo/puppet-rsnapshot
synced 2024-12-16 09:40:35 +00:00
add custom commands to misc script
This commit is contained in:
parent
eb643443fd
commit
86073f42b1
39
README.md
39
README.md
@ -385,7 +385,7 @@ You can set
|
||||
`dumper` : path to the dump bin you wish to use
|
||||
`dump_flags`: flags for your dump bin
|
||||
`ignore_dbs` : databases to be ignored
|
||||
|
||||
`commands` : array of commands to run on the host (this has no effect on psql and mysql scripts and is intended for your custom needs, see misc script section)
|
||||
See below for defaults
|
||||
|
||||
NOTE: the psql and mysql scripts will SSH into your host and try and use $dumper.
|
||||
@ -412,7 +412,16 @@ Default is:
|
||||
dump_flags => '-Fc',
|
||||
ignore_dbs => [],
|
||||
},
|
||||
misc => {},
|
||||
misc => {
|
||||
commands => $::osfamily ? {
|
||||
'RedHat' => [
|
||||
'rpm -qa --qf="%{name}," > packages.txt',
|
||||
],
|
||||
'Debian' => [
|
||||
'dpkg --get-selections > packages.txt',
|
||||
],
|
||||
default => [],
|
||||
},
|
||||
}
|
||||
|
||||
```
|
||||
@ -436,11 +445,16 @@ rsnapshot::hosts:
|
||||
dumper: '/usr/local/bin/pg_dump'
|
||||
dump_flags: '-Fc'
|
||||
ignore_dbs: [ 'db1', 'tmp_db' ]
|
||||
misc:
|
||||
bazqux:de:
|
||||
backup_scripts:
|
||||
mysql:
|
||||
dbbackup_user: 'myuser'
|
||||
dbbackup_password: 'mypassword'
|
||||
misc:
|
||||
commands:
|
||||
- 'cat /etc/hostname > hostname.txt'
|
||||
- 'date > date.txt'
|
||||
```
|
||||
|
||||
This creates
|
||||
@ -448,6 +462,7 @@ This creates
|
||||
- the psql script will use `/usr/local/bin/pg_dump` as the dump program with flags `-Fc`
|
||||
- it will ignore the postgres databases `db1` and `tmp_db` for postgres
|
||||
- a mysql backup script for `bazqux.de` using the credentials `myuser:mypassword`
|
||||
- a misc script for bazqux.de containing two commands to run on the node. the output will be redirected to hostname.txt and date.txt in the misc/ subfolder of the hosts backup directory (i.e. /snapshot_root/bazqux.de/daily.0/misc/hostname.txt)
|
||||
|
||||
The scripts look like this:
|
||||
|
||||
@ -471,6 +486,17 @@ done
|
||||
|
||||
```
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
ssh bazqux.de 'cat /etc/hostname > hostname.txt'
|
||||
|
||||
ssh bazqux.de 'date > date.txt'
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
##### `foobar.com`
|
||||
|
||||
psql:
|
||||
@ -514,6 +540,15 @@ done
|
||||
|
||||
```
|
||||
|
||||
misc (assuming foobar.com is a RedHat node):
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
ssh foobar.com 'rpm -qa --qf "%{name}," > packages.txt'
|
||||
|
||||
```
|
||||
|
||||
##### another example with root user and empty password
|
||||
|
||||
mysql with root user:
|
||||
|
@ -147,7 +147,8 @@ class rsnapshot::config (
|
||||
$dumper = $real_script[dumper]
|
||||
$dump_flags = $real_script[dump_flags]
|
||||
$ignore_dbs = $real_script[ignore_dbs]
|
||||
|
||||
$compress = $real_script[compress]
|
||||
$commands = $real_script[commands]
|
||||
|
||||
concat::fragment { "${host}_${script}_backup":
|
||||
target => $config,
|
||||
|
@ -7,7 +7,11 @@ class rsnapshot::params {
|
||||
$config_backup_user = 'root'
|
||||
$package_name = 'rsnapshot'
|
||||
$package_ensure = 'present'
|
||||
$cron_service_name = 'crond'
|
||||
$cron_service_name = $::osfamily ? {
|
||||
'RedHat' => 'crond',
|
||||
'Debian' => 'cron',
|
||||
default => '',
|
||||
}
|
||||
$cron_dir = '/etc/cron.d'
|
||||
$config_backup_levels = [ 'daily', 'weekly', 'monthly' ]
|
||||
$config_backup_defaults = true
|
||||
@ -100,6 +104,7 @@ class rsnapshot::params {
|
||||
dumper => 'mysqldump',
|
||||
dump_flags => '--single-transaction --quick --routines --ignore-table=mysql.event',
|
||||
ignore_dbs => [ 'information_schema', 'performance_schema' ],
|
||||
compress => 'pbzip2',
|
||||
},
|
||||
psql => {
|
||||
dbbackup_user => 'postgres',
|
||||
@ -107,7 +112,18 @@ class rsnapshot::params {
|
||||
dumper => 'pg_dump',
|
||||
dump_flags => '-Fc',
|
||||
ignore_dbs => [],
|
||||
compress => 'pbzip2',
|
||||
},
|
||||
misc => {
|
||||
commands => $::osfamily ? {
|
||||
'RedHat' => [
|
||||
'rpm -qa --qf="%{name}," > packages.txt',
|
||||
],
|
||||
'Debian' => [
|
||||
'dpkg --get-selections > packages.txt',
|
||||
],
|
||||
default => [],
|
||||
},
|
||||
misc => {},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,6 @@
|
||||
#!/bin/bash
|
||||
# add custom stuff here
|
||||
# FIXME: remember to concat for custom stuff after the last line of the puppet generated script
|
||||
<% if @osfamily == 'RedHat' -%>
|
||||
ssh <%=@host-%> rpm -qa --qf='%{name},' > packages.txt
|
||||
|
||||
<%@commands.each do |command| -%>
|
||||
ssh <%=@host-%> '<%=command-%>'
|
||||
|
||||
<%end-%>
|
||||
#
|
||||
#
|
||||
#
|
||||
# ++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
@ -22,6 +22,8 @@ for db in "${dbs[@]}"; do
|
||||
ssh -l root "$host" "<%=@dumper-%> --user=<%=@dbbackup_user-%> --password='<%=@dbbackup_password-%>' <%=@dump_flags-%> ${db}" > "$db".sql
|
||||
<%end-%>
|
||||
wait
|
||||
pbzip2 "$db".sql
|
||||
<% if @compress != '' -%>
|
||||
<%=@compress-%> "$db".sql
|
||||
<%end-%>
|
||||
done
|
||||
|
||||
|
@ -13,6 +13,8 @@ dbs=(
|
||||
for db in "${dbs[@]}"; do
|
||||
ssh -l root "$host" "<%=@dumper-%> -U ${user} <%=@dump_flags-%> ${db}" > "$db".sql
|
||||
wait
|
||||
pbzip2 "$db".sql
|
||||
<% if @compress != '' -%>
|
||||
<%=@compress-%> "$db".sql
|
||||
<%end-%>
|
||||
done
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user