rsync

pdk
Manages rsync clients, repositories, and servers, & providies defines to easily grab data via rsync.

58,201 downloads

1,819 latest version

4.7 quality score

Version information

  • 2.0.0 (latest)
  • 1.0.3
  • 1.0.2
  • 1.0.1
  • 1.0.0
  • 0.7.0
  • 0.6.4
  • 0.6.3
  • 0.6.2
  • 0.6.1
  • 0.6.0
  • 0.5.3
  • 0.5.2
  • 0.5.1
released Mar 8th 2024
This version is compatible with:
  • Puppet Enterprise 2025.3.x, 2025.2.x, 2025.1.x, 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 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
  • Puppet >= 7.0.0 < 9.0.0
  • RedHat
    ,
    CentOS
    ,
    Debian

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'themeier-rsync', '2.0.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add themeier-rsync
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install themeier-rsync --version 2.0.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download
Tags: rsync, rsyncd

Documentation

themeier/rsync — version 2.0.0 Mar 8th 2024

puppetlabs-rsync

puppetlabs-rsync manages rsync clients, repositories, and servers as well as providing defines to easily grab data via rsync.

Class: rsync

Manage rsync package

Parameters:

$package_ensure - any of the valid values for the package resource: present, absent, purged, held, latest
$manage_package - setting this to false stops the rsync package resource from being managed

Sample Usage:

class { 'rsync': package_ensure => 'latest' }

Definition: rsync::get

get files via rsync

Parameters:

$source        - source to copy from
$path          - path to copy to, defaults to $name
$user          - username on remote system
$keyfile       - ssh key used to connect to remote host
$timeout       - timeout in seconds, defaults to 900
$execuser      - user to run the command (passed to exec)
$options       - default options to pass to rsync (-a)
$onlyif        - condition to run the rsync command

Actions:

get files via rsync

Requires:

$source must be set

Sample Usage:

# get file 'foo' via rsync
rsync::get { '/foo':
  source  => "rsync://${rsyncServer}/repo/foo/",
  require => File['/foo'],
}

Definition: rsync::put

put files via rsync

Parameters:

$source  - source to copy from
$path    - path to copy to, defaults to $name
$user    - username on remote system
$keyfile - path to ssh key used to connect to remote host, defaults to /home/${user}/.ssh/id_rsa
$timeout - timeout in seconds, defaults to 900
$options - commandline options to pass to rsync (-a)

Actions:

put files via rsync

Requires:

$source must be set

Sample Usage:

rsync::put { '${rsyncDestHost}:/repo/foo':
  user    => 'user',
  source  => "/repo/foo/",
}

Definition: rsync::server::module

sets up a rsync server

Parameters:

$path               - path to data
$comment            - rsync comment
$read_only          - yes||no, defaults to yes
$write_only         - yes||no, defaults to no
$list               - yes||no, defaults to no
$uid                - uid of rsync server, defaults to 0
$gid                - gid of rsync server, defaults to 0
$incoming_chmod     - incoming file mode, defaults to 644
$outgoing_chmod     - outgoing file mode, defaults to 644
$max_connections    - maximum number of simultaneous connections allowed, defaults to 0
$lock_file          - file used to support the max connections parameter, defaults to /var/run/rsyncd.lock only needed if max_connections > 0
$secrets_file       - path to the file that contains the username:password pairs used for authenticating this module
$auth_users         - list of usernames that will be allowed to connect to this module (must be undef or an array)
$hosts_allow        - list of patterns allowed to connect to this module (man 5 rsyncd.conf for details, must be undef or an array)
$hosts_deny         - list of patterns allowed to connect to this module (man 5 rsyncd.conf for details, must be undef or an array)
$transfer_logging   - parameter enables per-file logging of downloads and uploads in a format somewhat similar to that used by ftp daemons.
$log_format         - This parameter allows you to specify the format used for logging file transfers when transfer logging is enabled. See the rsyncd.conf documentation for more details.
$refuse_options     - list of rsync command line options that will be refused by your rsync daemon.
$ignore_nonreadable - This  tells  the  rsync daemon to completely ignore files that are not readable by the user.
$pre_xfer_exec      - command to be run before the transfer
$post_xfer_exec     - command to be run before the transfer
$dont_compress      - wildcard patterns that should not be compressed when pulling files from the daemon (man 5 rsyncd.conf for details, must be undef or an array)

Actions:

sets up an rsync server

Requires:

$path must be set

Sample Usage:

# setup default rsync repository
rsync::server::module{ 'repo':
  path    => $base,
  require => File[$base],
}

To disable default values for incoming_chmod and outgoing_chmod, and do not add empty values to the resulting config, set both values to false

include rsync::server
rsync::server::module { 'repo':
  path           => $base,
  incoming_chmod => false,
  outgoing_chmod => false,
  require        => File[$base],
}

Configuring via Hiera

rsync::put, rsync::get, and rsync::server::module resources can be configured using Hiera hashes. For example:

rsync::server::modules:
  myrepo:
    path: /mypath
    incoming_chmod: false
    outgoing_chmod: false
  myotherrepo:
    path: /otherpath
    read_only: false