This commit is contained in:
Nico Schottelius 2012-01-23 10:40:48 +01:00
commit 56d2862e99
4 changed files with 110 additions and 0 deletions

View file

@ -0,0 +1,44 @@
#!/bin/sh
#
# Copyright (C) 2011 Daniel Maher (phrawzty+cdist at gmail.com)
#
# This file is part of cdist (https://github.com/telmich/cdist/).
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
source="$(cat "$__object/parameter/source")"
if [ -f "$__object/parameter/destination" ]; then
destination="$(cat "$__object/parameter/destination")"
else
destination="/$__object_id"
fi
# The system binary is probably ok, but if not...
if [ -f "$__object/parameter/rsyncbin" ]; then
rsyncbin="$(cat "$__object/parameter/rsyncbin")"
else
rsyncbin=`which rsync`
fi
args='-a --stats'
# If the --delete argument should be passed to rsync.
if [ -f "$__object/parameter/delete" ]; then
args="$args --delete"
fi
# Run rsync (locally).
echo "$rsyncbin $args $source root@$__target_host:$destination"

View file

@ -0,0 +1,62 @@
cdist-type__rsyncer(7)
======================
Daniel Maher <phrawzty+cdist at gmail.com>
NAME
----
cdist-type__rsyncer - Use rsync to copy files.
DESCRIPTION
-----------
This type is used to trigger rsync to copy files from the machine running cdist
(source) to the target machine in question (destination). The likely usage is
the rapid deployment of full directory trees, the cohorency of which can be
guarunteed with the optional --delete argument, which will remove any files
from the destination which are not present on the source.
REQUIRED PARAMETERS
-------------------
source::
The full path of the source from which to copy. This is passed directly
to rsync.
OPTIONAL PARAMETERS
-------------------
destination::
The full path of the destination. This is passed directly to rsync.
Default: object_id
delete::
If true, remove files from destination which are not in source. This is
effectively the --delete argument of rsync.
Default: false
rsyncbin::
Specify the full path to the rsync binary.
Default: `which rsync`
EXAMPLES
--------
--------------------------------------------------------------------------------
# Basic example
__rsyncer '/home/foo' --source '/opt/dist/foo'
# Fancier example
__rsyncer FOO --source '/opt/dist/foo' --destination '/home/foo/' --delete true
--------------------------------------------------------------------------------
SEE ALSO
--------
- cdist-type(7)
COPYING
-------
Copyright \(C) 2011 Daniel Maher. Free use of this software is granted under
the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -0,0 +1,3 @@
destination
delete
rsyncbin

View file

@ -0,0 +1 @@
source