Giter VIP home page Giter VIP logo

puppet-backuppc's Introduction

BackupPC Module

Build Status

####Table of Contents

  1. Overview
  2. Module Description
  3. Usage
  4. Reference
  5. Limitations
  6. Development

##Overview

This module will install and configure a BackupPC server and allow you to add other puppet managed nodes as clients/hosts. It uses exported resources to create the client's configuration file, add it to the hosts file and setup ssh access if needed.

This module started as a fork of https://github.com/codec/puppet-backuppc.

##Module Description

BackupPC has many configuration options and this module should provide you access to most of them. BackupPC's global configuration file is managed by backuppc::server and is intended to setup useful defaults that can be overridden by the client if needed.

Where BackupPC's configuration file uses camel case for the config variables the module's class parameters would use the same names but replacing the uppercase characters with lowercase and an underscore prefix.

For xfer methods that require ssh the module can:

  • Create a non-privledged account on the client and allow it access to rsync or tar via sudo.
  • Install the server's ssh key.
  • Add the client's ssh key to the list of known hosts.

By default the account name is 'backup'. You can choose to do the ssh configuration yourself if it doesn't suit your environment (see the client.pp file for notes on system_account).

The module is designed to work alongside the BackupPC web administration interface, meaning hosts that are configured but not managed by this module will still work.

Usage

Minimal server configuration

class { 'backuppc::server':
  backuppc_password => 'somesecret'
}

This will do the typical install, configure and service management. The module does not manage apache. It will, if the apache_configuation parameter is true, install an apache configuration file that creates an alias from the /backuppc url to the backuppc files on the system. Additionally it will create a htpasswd file with the default backuppc user and the password that you provide for access to the web based administration. You will however need to inform the apache service that something has changed. Alternatively you can install backuppc as a virtual host or whatever else suits your needs.

Additional login accounts

backuppc::server::user { 'john':
  password => 'mypassword'
}

The default path to the htpasswd file is in the [config_directory]/htpasswd. You can add additional login accounts and assign these to hosts (see client examples for this).

More server configuration

class { 'backuppc::server':
  backuppc_password => 'somesecret'
  wakeup_schedule   => [1, 2, 3, 4, 5, 21, 22, 23],
  max_backups       => 3,
  max_user_backups  => 1,
}

Please consult the BackupPC documentation for explanations on configuration options: http://backuppc.sourceforge.net/faq/BackupPC.html

Some configuration options, like xfer_method, is more useful to set when adding a client. Where a configuration parameter is ommited backuppc's default is applied in the main/global configuration file.

Client configuration

class { 'backuppc::client':
  backuppc_hostname     => 'fqdn.backuppcserver.com',
  rsync_share_name      => ['/home', '/etc'],
  hosts_file_more_users => 'john',
}

You'll need to specify the hostname of the node on which you installed backuppc server. This value should be the same as the facter value for fqdn. By default the xfer_method is rsync and you can specify the paths to backup with the parameter rsync_share_name. With rsync and tar methods the module will create on the client an system account and allow the server access to it (see the description section in this readme).

Backuping up the backuppc server itself

class { 'backuppc::client':
  backuppc_hostname => $::fqdn,
  xfer_method       => 'tar',
  tar_share_name    => ['/home', '/etc', '/var/log'],
  tar_client_cmd    => '/usr/bin/sudo $tarPath -c -v -f - -C $shareName --totals',
  tar_full_args     => '$fileList',
  tar_incr_arge     => '--newer=$incrDate $fileList',
}

Debian by default installs a 'localhost' host, but if you want to managed it with puppet or if you're on Centos/RHEL this example will use the tar method to backup the paths you sepcify. The example uses sudo which is not configured in the module itself.

##Reference

###Classes

####Public Classes

  • backuppc:server: Class used to install backuppc.
  • backuppc::client: Configures host for backup through backuppc.

####Private Classes

  • backuppc::params: Default values.

Limitations

  • This module has been tested on Debian Wheezy, Squeeze and Centos 6.4.
  • Storeconfigs need to be enabled for this module to work.
  • There is a TODO for generating and installing the server's ssh key. Currently it relies on a facter value that is only present on the second run of puppet.

Contributors

puppet-backuppc's People

Contributors

codec avatar wyrie avatar marknl avatar maxdelorme avatar raoulbhatia avatar rfdrake avatar voidus avatar treydock avatar furhouse avatar

Watchers

Florian Coulmier avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.