Installs & configures a BURP backup server and its clients. Adds resources to add paths to backup or exclude, and "plugin" scripts to execute before and/or after a backup. (such as dumping a database)
- Ubuntu (>= 12.04)
- apt
- build-essential (>= 2.0.0)
- git
- partial_search (~> 1.0.8)
node['burp']['restrict_search_environment']
- Whether to restrict the search for clients to the same environment as the server. Defaults to"false"
.node['burp']['servername']
- The server adress or name that clients are expected to connect to. Defaults to"node['fqdn']"
.
Install BURP and setup a client configuration with a random password.
Sets the server to the content of node['burp']['server']
.
Set this attribute in a
wrapper cookbook,
or in an environment, for example.
Retrieve burp from Github, compile and install the binaries. Also installs build dependencies librsync-dev, libz-dev, libssl-dev, uthash-dev.
Install BURP and setup a server configuration in /etc/burp-server. Searches for clients and installs an individual config file for each one in /etc/burp-server/clientconfdir.
Add a path to be backed up by the BURP client. The path is added to node attributes during compile time, so the burp::client recipe can be added at any point in your run_list.
Example:
burp_include '/var/backups'
Add a path to be excluded by the BURP client. The path is added to node attributes during compile time, so the burp::client recipe can be added at any point in your run_list.
Example:
burp_exclude '/var/lib/mysoftware/cache'
Add a regex to be excluded by the BURP client. The regex is added to node attributes during compile time, so the burp::client recipe can be added at any point in your run_list. See the man page for the exclude_regex configuration item.
Example:
burp_exclude_regex '.*/bundle/.*'
burp_exclude_regex '.*/cache/.*'
Copies a pair of scripts from a Chef template resource to be used as actions before/after a backup runs.
- create: Default action.
- name: A name for the plugin. Be creative and avoid duplicates.
ex.:
mycompany_mysql_backup
Only accepts valid Debian cron script names (^[a-zA-Z0-9_-]+$
) - cookbook: The cookbook in which to find the templates.
- pre_template: The script to run before starting to backup files. if it exits with a non-zero
status, the backup is interrupted. Can be
nil
if no script is to be installed. Defaults to'pre_backup.sh'
- post_template: The script to run after the backup completes. If it exits with a non-zero
status, the other plugins will still run. Can be
nil
if no script is to be installed. Defaults to'post_backup.sh'
- variables: An optional set of variables to pass through to the underlying template resources. Examples:
burp_plugin 'cassandra' do
cookbook 'mycompany-cassandra'
pre_template 'scripts/snapshot.sh'
post_template 'clear snapshot'
end
burp_plugin 'mysql' do
cookbook 'mycompany-mysql'
pre_template 'dump.sh'
post_template nil
variables( a: 'b', c: 9)
end
Maintainer:: Kevin Lamontagne (kevinlamontagne@gmail.com)
License:: MIT