Skip to content

Commit

Permalink
Update rsync to e5198135a005cd397342957c3e7a0a564e367e33
Browse files Browse the repository at this point in the history
e5198135a005cd397342957c3e7a0a564e367e33 Merge pull request redhat-openstack#36 from Mylezeem/param_onlyif
9aa468d508e6b5f529f393ea4f7cc7a28b0a53f7 get: Parametrize the onlyif condition of the rsync command
3902c1ac705236b84c82bbe6ce6f3dd146c1548b Merge pull request redhat-openstack#39 from apenney/031-release
76aeb5ac4018b5ccf8497fcfeeb15e44ba0b6cd8 Prepare 0.3.1 release.
4b9206d40a357b3fddf2385f883d09d16ba76547 Merge pull request redhat-openstack#37 from notanisp/master
11b82e070946f3159054ba56db37a16c68ae4930 Fix variable name capitalization.
566366b6aefcc879185ccce115ba7cdd1eafe9d8 Merge pull request redhat-openstack#38 from mhaskel/PR32-cleanup
58af256145ecaa6bd02cc47345ed8e04f7c55c7d Slight documentation and style updates.
ed2b36d4d38e7705980474c61a9f2dd5995f805f Update init.pp
e29faca873a3ab7573452edfd49700ab2eb738b7 Update README.markdown
ccd1b1321a56b6bbd21644ccaf815adb68a628aa Update get.pp
9830d0f25111be77a7ae2adc49e23a72ab60723f Update init.pp
946d279fe5967815456058e1fd4321f84206dd7a Merge pull request redhat-openstack#35 from mhaskel/0.3.0-prep
d0707c4ae3674b63c2193c0012ceb9fa90ed41b6 Prepare 0.3.0 release.
4fdfefe4a627a31fb55381d1666c6c9aaeec7c9e Merge pull request redhat-openstack#33 from stefanandres/uid_gid_as_variables
7a9bc9c3cda2952f8e165efaa52669a76e84d4c3 Implement rspec tests for uid/gid variables
596cd575a15819388867df0e2eec4ca9e45c4280 Implement uid/gid in header.erb as variables to be used in rsync::server
ff6452216291e4ddabf1363f2fef25a33d529079 Merge pull request redhat-openstack#24 from pall-valmundsson/rsync-put
b01bc6079600231c86ead78f5bbae597c5e9f31f Add rsync::put usage to README
f8e17e6c16e8ebcb0c5c9c289fc1014cededc6b7 Merge branch 'Aethylred-more_options'
951e80cf4699fe8b01e2254c33a78238d80ed865 Merge branch 'more_options' of github.com:Aethylred/puppetlabs-rsync into Aethylred-more_options
fdf0f9621281e9703d420cf632f2c2f5d16e2d30 Merge pull request redhat-openstack#30 from mckern/exclude_all_the_things
0592f1ff837ef3fbe5d02268b153020cec2358b6 Merge pull request redhat-openstack#31 from HarryWeppner/master
e89a3ff6f2af186560f97b2acc59fdb7d974e95b /usr/local/bin included in search path for rsync
5759c3acf704e8021b43aad237edc03f6039fd37 (maint) Remove use of str2bool
7cf04d1b6757c89b9109742623a10e1701240e0e Merge pull request redhat-openstack#29 from mckern/exclude_all_the_things
ba00e18e99685f948c02a43a84b4253e9c233cdd Clean up Debian patches
8633dc308c416d685b628e95cd2e99f528de1c64 Add Debian support (based on PR 22, by splebel)
8d8b04fa36bae3226d914c50bb0630209d452882 Fix missing newline-chomp in rsync::server::module template
818fe078da1b60bb54b9c0e037c41a5ae50b1707 Add 'exclude' as an option for rsync::server::module
86e475914260c150a22c3901558d1a3304359663 Merge pull request redhat-openstack#28 from hogepodge/0.2.0
63fea0d2711791a99de3638fcd2af4f362e7598c 0.2.0 Release
ad37382286622cc5b5ab1dfb7e229facc1d5c252 bugfix and tests added
c962422eb17a530689d584d49d5bdff3ba0f1aeb Adding missing travis config, and rationalise extra spaces in commands and tests
c18cc79d874e6f534a86cc39dbf109321c226ee3 Allow setting more rsync options
7122983d89bf68bc4170415cc03212f6a8a4636e Merge pull request redhat-openstack#25 from blkperl/fix_puppet32x_dep
45e5d75fe223244471772f9757e92d9f9b2537ae Simplify module template logic
9e7f6c0ddd8090ebfa9f66814a5cf21f6a38c815 Add template uses comment
ba468dcc31e921e22af2b4ccc6a51a5c89bd9eab Fix puppet 3.2.x deprecation warnings
b67b4dd189fd6b3bb4e273458a21d3d11e1e2186 Merge pull request redhat-openstack#23 from juanibiapina/execuser
dc2a92a7980ea8f9e94aaba35260f3adb2f899f9 implement rsync::put, a reversal of rsync::get
1a7a0a6fc668b1f0193d91e8eb2c657104262254 Update README.
cd7246ae0efe1e771152723dd28468839b86dea6 Add .rspec to gitignore.
5ba843eaf7dcb118a77648a2082f0e85aa8fe015 Add execuser param to run command as that user.
265eb9fc52742ad1f7a84e78149ac508295a2b8b Ruby 2.0.0-p195 compatibility changes.
  • Loading branch information
xbezdick committed Dec 2, 2014
1 parent 4856ba6 commit 7b65c9e
Show file tree
Hide file tree
Showing 21 changed files with 645 additions and 88 deletions.
2 changes: 1 addition & 1 deletion Puppetfile
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ mod 'redis',
:git => 'https://github.com/arioch/puppet-redis.git'

mod 'rsync',
:commit => '357d51f3a6a22bc3da842736176c3510e507b4fb',
:commit => 'e5198135a005cd397342957c3e7a0a564e367e33',
:git => 'https://github.com/puppetlabs/puppetlabs-rsync.git'

mod 'sahara',
Expand Down
5 changes: 0 additions & 5 deletions rsync/.gemfile

This file was deleted.

3 changes: 2 additions & 1 deletion rsync/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
metadata.json
pkg/
Gemfile.lock
.rspec
28 changes: 28 additions & 0 deletions rsync/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
branches:
only:
- master
language: ruby
bundler_args: --without development
script: "bundle exec rake spec SPEC_OPTS='--format documentation'"

rvm:
- 1.8.7
- 1.9.3
- 2.0.0
env:
matrix:
- PUPPET_GEM_VERSION="~> 2.7.0"
- PUPPET_GEM_VERSION="~> 3.0"
- PUPPET_GEM_VERSION="~> 3.2.0"

matrix:
exclude:
- rvm: 1.9.3
env: PUPPET_GEM_VERSION="~> 2.7.0"
- rvm: 2.0.0
env: PUPPET_GEM_VERSION="~> 2.7.0"
- rvm: 1.8.7
env: PUPPET_GEM_VERSION="~> 3.2.0"
notifications:
email: false
27 changes: 27 additions & 0 deletions rsync/CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,2 +1,29 @@
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 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

Fixes:
- Added /usr/local/bin to path for the rsync command exec.


* 2013-01-31 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 0.1.0
- Initial release
8 changes: 8 additions & 0 deletions rsync/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
source "https://rubygems.org"

gem 'puppetlabs_spec_helper'
if puppetversion = ENV['PUPPET_GEM_VERSION']
gem 'puppet', puppetversion, :require => false
else
gem 'puppet', :require => false
end
9 changes: 0 additions & 9 deletions rsync/Modulefile

This file was deleted.

56 changes: 50 additions & 6 deletions rsync/README.markdown
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,74 @@
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

## 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, rsycn will use '--times'
$include - string to be included
$exclude - string 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)
$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'
$exlude - string to be excluded
$keyfile - ssh key used to connect to remote host
$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

## Actions: ##
get files via rsync
put 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'],
rsync::put { '${rsyncDestHost}:/repo/foo':
user => 'user',
source => "/repo/foo/",
}

# Definition: rsync::server::module #
Expand Down
43 changes: 43 additions & 0 deletions rsync/files/defaults
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Debian defaults file for rsync daemon mode.
#### This file is being maintained by Puppet.
#### DO NOT EDIT!

# start rsync in daemon mode from init.d script?
# only allowed values are "true", "false", and "inetd"
# Use "inetd" if you want to start the rsyncd from inetd,
# all this does is prevent the init.d script from printing a message
# about not starting rsyncd (you still need to modify inetd's config yourself).
RSYNC_ENABLE=true

# which file should be used as the configuration file for rsync.
# This file is used instead of the default /etc/rsyncd.conf
# Warning: This option has no effect if the daemon is accessed
# using a remote shell. When using a different file for
# rsync you might want to symlink /etc/rsyncd.conf to
# that file.
# RSYNC_CONFIG_FILE=

# what extra options to give rsync --daemon?
# that excludes the --daemon; that's always done in the init.d script
# Possibilities are:
# --address=123.45.67.89 (bind to a specific IP address)
# --port=8730 (bind to specified port; default 873)
RSYNC_OPTS=''

# run rsyncd at a nice level?
# the rsync daemon can impact performance due to much I/O and CPU usage,
# so you may want to run it at a nicer priority than the default priority.
# Allowed values are 0 - 19 inclusive; 10 is a reasonable value.
RSYNC_NICE=''

# run rsyncd with ionice?
# "ionice" does for IO load what "nice" does for CPU load.
# As rsync is often used for backups which aren't all that time-critical,
# reducing the rsync IO priority will benefit the rest of the system.
# See the manpage for ionice for allowed options.
# -c3 is recommended, this will run rsync IO at "idle" priority. Uncomment
# the next line to activate this.
# RSYNC_IONICE='-c3'

# Don't forget to create an appropriate config file,
# else the daemon will not start.
76 changes: 59 additions & 17 deletions rsync/manifests/get.pp
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
# $exlude - string 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
# $onlyif - Condition to run the rsync command
#
# Actions:
# get files via rsync
Expand All @@ -26,50 +27,91 @@
#
define rsync::get (
$source,
$path = undef,
$user = undef,
$purge = undef,
$exclude = undef,
$keyfile = undef,
$timeout = '900'
$path = $name,
$user = undef,
$purge = undef,
$recursive = undef,
$links = undef,
$hardlinks = undef,
$copylinks = undef,
$times = undef,
$include = undef,
$exclude = undef,
$keyfile = undef,
$timeout = '900',
$execuser = 'root',
$chown = undef,
$onlyif = undef,
) {

if $keyfile {
$Mykeyfile = $keyfile
$mykeyfile = $keyfile
} else {
$Mykeyfile = "/home/${user}/.ssh/id_rsa"
$mykeyfile = "/home/${user}/.ssh/id_rsa"
}

if $user {
$MyUser = "-e 'ssh -i ${Mykeyfile} -l ${user}' ${user}@"
$myUser = "-e 'ssh -i ${mykeyfile} -l ${user}' ${user}@"
}

if $purge {
$MyPurge = '--delete'
$myPurge = ' --delete'
}

# Not currently correct, there can be multiple --exclude arguments
if $exclude {
$MyExclude = "--exclude=${exclude}"
$myExclude = " --exclude=${exclude}"
}

if $path {
$MyPath = $path
# Not currently correct, there can be multiple --include arguments
if $include {
$myInclude = " --include=${include}"
}

if $recursive {
$myRecursive = ' -r'
}

if $links {
$myLinks = ' --links'
}

if $hardlinks {
$myHardLinks = ' --hard-links'
}

if $copylinks {
$myCopyLinks = ' --copy-links'
}

if $times {
$myTimes = ' --times'
}

if $chown {
$myChown = " --chown=${chown}"
}

$rsync_options = "-a${myPurge}${myExclude}${myInclude}${myLinks}${myHardLinks}${myCopyLinks}${myTimes}${myRecursive}${myChown} ${myUser}${source} ${path}"

if !$onlyif {
$onlyif_real = "test `rsync --dry-run --itemize-changes ${rsync_options} | wc -l` -gt 0"
} else {
$MyPath = $name
$onlyif_real = $onlyif
}

$rsync_options = "-a ${MyPurge} ${MyExclude} ${MyUser}${source} ${MyPath}"

exec { "rsync ${name}":
command => "rsync -q ${rsync_options}",
path => [ '/bin', '/usr/bin' ],
path => [ '/bin', '/usr/bin', '/usr/local/bin' ],
user => $execuser,
# perform a dry-run to determine if anything needs to be updated
# this ensures that we only actually create a Puppet event if something needs to
# be updated
# TODO - it may make senes to do an actual run here (instead of a dry run)
# and relace the command with an echo statement or something to ensure
# that we only actually run rsync once
onlyif => "test `rsync --dry-run --itemize-changes ${rsync_options} | wc -l` -gt 0",
onlyif => $onlyif_real,
timeout => $timeout,
}
}
4 changes: 2 additions & 2 deletions rsync/manifests/init.pp
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
#
# This module manages rsync
#
class rsync {
class rsync($package_ensure = 'installed') {

package { 'rsync':
ensure => installed,
ensure => $package_ensure,
} -> Rsync::Get<| |>
}
Loading

0 comments on commit 7b65c9e

Please sign in to comment.