diff --git a/cdist/conf/type/__rsync/gencode-local b/cdist/conf/type/__rsync/gencode-local new file mode 100644 index 00000000..71e47af1 --- /dev/null +++ b/cdist/conf/type/__rsync/gencode-local @@ -0,0 +1,19 @@ +source_dir=$(cat "$__object/parameter/source-dir") +remote_user=$(cat "$__object/parameter/remote-user") + +if [ -f "$__object/parameter/destination-dir" ]; then + destination_dir=$(cat "$__object/parameter/destination-dir") +else + destination_dir="$__object_id" +fi + +set -- +if [ -f "$__object/parameter/rsync-opts" ]; then + while read opts; do + set -- "$@" "$opts" + done +fi + +echo rsync -a \ + --no-owner --no-group \ + -q "$@" "${source_dir}/" "${remote_user}@${__target_host}:$destination_dir" diff --git a/cdist/conf/type/__rsync/gencode-remote b/cdist/conf/type/__rsync/gencode-remote new file mode 100644 index 00000000..f1c6e4d7 --- /dev/null +++ b/cdist/conf/type/__rsync/gencode-remote @@ -0,0 +1,17 @@ +if [ -f "$__object/parameter/destination-dir" ]; then + destination_dir=$(cat "$__object/parameter/destination-dir") +else + destination_dir="$__object_id" +fi + +ownergroup="" +if [ -f "$__object/parameter/owner" ]; then + ownergroup=$(cat "$__object/parameter/owner") +fi +if [ -f "$__object/parameter/group" ]; then + ownergroup=":$(cat "$__object/parameter/group")" +fi + +if [ "$ownergroup" ]; then + echo chown -R "$ownergroup" "$destination_dir" +fi diff --git a/cdist/conf/type/__rsync/man.text b/cdist/conf/type/__rsync/man.text new file mode 100644 index 00000000..b90d445e --- /dev/null +++ b/cdist/conf/type/__rsync/man.text @@ -0,0 +1,77 @@ +cdist-type__rsync(7) +==================== +Nico Schottelius + + +NAME +---- +cdist-type__rsync - Mirror directories using rsync + + +DESCRIPTION +----------- +This cdist type allows you to mirror local directories to the +target host using rsync. +Rsync will be installed in the manifest of the type. + +If group or owner are giveng, a recursive chown +will be executed on the target host. + +REQUIRED PARAMETERS +------------------- +source:: + Where to take files from + + +OPTIONAL PARAMETERS +------------------- +group:: + Group to chgrp to. + +owner:: + User to chown to. + +destination:: + Use this as the base destination instead of the object id + +remote-user:: + Use this user instead of the default "root" for rsync operations. + +MESSAGES +-------- +NONE + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# You can use any source directory +__rsync /tmp/testdir \ + --source /etc + +# Use source from type +__rsync /etc \ + --source "$__type/files/package" + +# Allow multiple __rsync objects to write to the same dir +__rsync mystuff \ + --destination /usr/local/bin \ + --source "$__type/files/package" + +__rsync otherstuff \ + --destination /usr/local/bin \ + --source "$__type/files/package2" + + +-------------------------------------------------------------------------------- + +SEE ALSO +-------- +- cdist-type(7) + + +COPYING +------- +Copyright \(C) 2015 Nico Schottelius. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/cdist/conf/type/__rsync/manifest b/cdist/conf/type/__rsync/manifest new file mode 100644 index 00000000..d25df45b --- /dev/null +++ b/cdist/conf/type/__rsync/manifest @@ -0,0 +1 @@ +__package rsync diff --git a/cdist/conf/type/__rsync/parameter/default/remote-user b/cdist/conf/type/__rsync/parameter/default/remote-user new file mode 100644 index 00000000..d8649da3 --- /dev/null +++ b/cdist/conf/type/__rsync/parameter/default/remote-user @@ -0,0 +1 @@ +root diff --git a/cdist/conf/type/__rsync/parameter/optional b/cdist/conf/type/__rsync/parameter/optional new file mode 100644 index 00000000..ac2b2390 --- /dev/null +++ b/cdist/conf/type/__rsync/parameter/optional @@ -0,0 +1,4 @@ +destination +owner +group +remote-user diff --git a/cdist/conf/type/__rsync/parameter/required b/cdist/conf/type/__rsync/parameter/required new file mode 100644 index 00000000..58420d42 --- /dev/null +++ b/cdist/conf/type/__rsync/parameter/required @@ -0,0 +1 @@ +source-dir