rsync
Version information
This version is compatible with:
- Puppet Enterprise 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >=4.0.0 <5.0.0
- , ,
Start using this module
Add this module to your Puppetfile:
mod 'themeier-rsync', '0.6.0'
Learn more about managing modules with a PuppetfileDocumentation
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
$purge - if set, rsync will use '--delete'
$recursive - if set, rsync will use '-r'
$links - if set, rsync will use '--links'
$hardlinks - if set, rsync will use '--hard-links'
$copylinks - if set, rsync will use '--copy-links'
$times - if set, rsync will use '--times'
$include - string (or array) to be included
$exclude - string (or array) to be excluded
$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)
$chown - USER:GROUP simple username/groupname mapping
$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
$purge - if set, rsync will use '--delete'
$include - string (or array) to be included
$exclude - string (or array) to be excluded
$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 - default 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
$motd - file containing motd info
$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.
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
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
##2017-01-05 - Release 0.6.0 ###Summary Force array type for array params of rsync::server::module. In previous versions it was possible to pass string values for array params. The witch to epp let to string values split by character
##2016-12-15 - Release 0.5.3 ###Summary This release replaces erb templates with epp templates
##2016-10-04 - Release 0.5.2 ###Summary This release improves test and metadata
####Features
- Add metadata_lint check
- Add os_supportt metadata
- Bound ranges for dependencies
- Add tags
##2016-10-05 - Release 0.5.1 ###Summary This release includes new parameters.
####Features
- New parameters
- rsync::server::module
$log_file
$ignore_nonreadable
- rsync::server::module
##2016-09-21 - Release 0.5.0 ###Summary This release includes several new parameters and puppet 4 support.
####Features
- Add SuSE and RedHat support
- New parameters
- rsync
$manage_package
$puts
$gets
- rsync::server
port
- rsync::server::module
transfer_logging
log_format
- rsync
####Bugfixes
- Fix testing
- Compatibility with puppet 4 and future parser
##2015-01-20 - Release 0.4.0 ###Summary
This release includes several new parameters and improvements.
####Features
- Update
$include
and$exclude
to support arrays - Updated to use puppetlabs/concat instead of execs to build file!
- New parameters
- rsync::get
$options
$onlyif
- rsync::put
$include
$options
- rsync::server::module
$order
$refuse_options
- rsync::get
####Bugfixes
- Fix auto-chmod of incoming and outgoing files when
incoming_chmod
oroutgoing_chmod
is set to false
##2014-07-15 - Release 0.3.1 ###Summary
This release merely updates metadata.json so the module can be uninstalled and upgraded via the puppet module command.
##2014-06-18 - Release 0.3.0 ####Features
- Added rsync::put defined type.
- Added 'recursive', 'links', 'hardlinks', 'copylinks', 'times' and 'include' parameters to rsync::get.
- Added 'uid' and 'gid' parameters to rsync::server
- Improved support for Debian
- Added 'exclude' parameter to rsync::server::module
####Bugfixes
- Added /usr/local/bin to path for the rsync command exec.
##2013-01-31 - Release 0.2.0
- Added use_chroot parameter.
- Ensure rsync package is installed.
- Compatability changes for Ruby 2.0.
- Added execuser parameter to run command as specified user.
- Various typo and bug fixes.
##2012-06-07 - Release 0.1.0
- Initial release
Dependencies
- puppetlabs/stdlib (>=4.2.0 < 5.0.0)
- puppetlabs/xinetd (>=2.0.0 < 3.0.0)
- puppetlabs/concat (>=2.0.0 < 3.0.0)
Puppet Labs Rsync Module - Puppet module for managing Rsync Copyright (C) 2012 Puppet Labs Inc Puppet Labs can be contacted at: info@puppetlabs.com Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.