Version information
This version is compatible with:
- Puppet Enterprise 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >=3.7.0 <8.0.0
- , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'vshn-burp', '1.4.3'
Learn more about managing modules with a PuppetfileDocumentation
Table of Contents
- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with burp
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
- Contributors
Overview
This module installs and configures the BURP backup software (client and server mode).
BURP stands for BackUp and Restore Program
.
Module Description
BURP provides one binary for client and server mode. The behaviour depends on the configuration file,
passed to the application with the -c
parameter.
This module provides two main functions:
- configuring the BURP backup server
- creating one or more BURP backup client configurations
The default parameters are applicable for BURP version 1.x, but the flexible nature of this module also allows to use the upcomming BURP version 2.
In opposite to the original BURP packaging, this Puppet module configures BURP to only have configuration
files in /etc/burp
and no dynamic data. All dynamic data like SSL certificates (CA) and the backup
data is by default configured to be located under /var/lib/burp
(server) and /var/lib/burp-<clientname>
.
There can be many client configurations, f.e. to backup to different backup servers
with different parameters. Just instantiate the ::burp::client
defined type. The default
client is name 'burp' because this is the name of the default configuration file and makes
it easier to call the application (so you don't need to add -c
to every call).
Setup
What burp affects
- Package
burp
- Configuration files under
/etc/burp/
- BURP server: directory
/var/lib/burp
- BURP client: directory
/var/lib/burp-${name}
- System service
burp
if configuring the server - Cronjob if configuring a client
- Exported resources for creating clientconfigs on the backup server
- Delivery of some default scripts to
/usr/local/bin
:burp_timer_script
burp_summary_script
burp_notify_script
burp_ssl_extra_checks_script
Beginning with burp
Instantiating the main class burp
does only install the package and will do some preparations, but
nothing more. You need to chose which mode you want to configure:
BURP server mode
class { ::burp::server: }
BURP client mode
class { ::burp:
clients => {
burp = {}
}
}
or
::burp::client { 'burp': }
Usage
To find the default values and parameter documentation, have a look at the .pp
files. Everything is documented there.
Reference
This sections describes some specialities
burp::extraconfig
This defined type allows to add some extra configuration to the client from "outside".
Configuration directives written to this extra configuration file is included in the main client configuration file.
It is located by default under /etc/burp/<clientname>-extra.conf
.
Example:
::burp::extraconfig { 'do_this':
client => 'burp',
configuration => { 'include' => [ '/opt/', '/tmp/' ] },
}
More Examples
Please see the examples/
directory for more usage examples.
Limitations
The module has been developed under Ubuntu. But it should also work on Debian, RedHat, CentOS and probably more Linux OS.
Development
- Fork it (https://github.com/vshn/puppet-burp/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Make sure your PR passes the Rspec tests.
Contributors
Have a look at Github contributors to see a list of all the awesome contributors to this Puppet module. <3
CHANGELOG
v1.4.3
- Use the server's config_file_mode for client configs
v1.4.2
- Make server RedHat-compatible
v1.4.1
- Added log rotation (requires module rodjek/logrotate)
v1.4.0
- Parameter to configure service name. Thanks to @kronos-pbrideau
- User, group and mode configuration for several files
- Several permission fixes
- Allow local changes to config files and scripts. Thanks to @cbergmann
v1.3.1
- Change timer_script to allow ensuring backups even if time-bands have run out
v1.3.0
- Quote file mode specifications for Puppet 4
- Move server logs from /var/log/burp.log to /var/log/burp/burp.log
v1.2.1
- Bump version in metadata
v1.2.0
- Apply explicit file and directory permissions:
- /etc/burp: 0750
- /etc/burp/burp-server.conf: 0600
- /etc/burp/CA.cnf: 0600
- /etc/burp/clients: 0750
- /etc/burp/clients/$client: 0600
- /etc/burp/$name.conf: 0600
- /etc/burp/$name-extra.conf: 0600
- /usr/local/bin/burp_notify_script: 0755 (before: 0775)
- /usr/local/bin/burp_ssl_extra_checks_script: 0755 (before: 0775)
- /usr/local/bin/burp_summary_script: 0755 (before: 0775)
- /usr/local/bin/burp_timer_script: 0755 (before: 0775)
- /var/lib/burp: 0750
- /var/lib/burp-$name: 0750
- /var/lib/burp-$name/ssl: 0700
v1.1.0
- New parameters on burp::client
ensure
to completely remove a clientcron_ensure
to manage cron job behaviour
v1.0.2
- More granular cron configuration
v1.0.1
- Do not run cron so often
- Set stdout to 0 by default
- Syslog parameter configurable
v1.0.0
- Initial release
Dependencies
- puppetlabs/stdlib (4.x)
- puppetlabs/concat (>=1.0.0)
- rodjek/logrotate (>=1.1.1)
Copyright (c) 2015, VSHN AG, info@vshn.ch All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of VSHN nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.