diff options
-rw-r--r-- | files/sync-media-export | 37 | ||||
-rw-r--r-- | files/sync-media-init | 43 | ||||
-rw-r--r-- | manifests/init.pp | 18 |
3 files changed, 98 insertions, 0 deletions
diff --git a/files/sync-media-export b/files/sync-media-export new file mode 100644 index 0000000..7b47639 --- /dev/null +++ b/files/sync-media-export @@ -0,0 +1,37 @@ +#!/bin/bash +# +# Copy git-annex repositories to remote server. +# + +# Parameters +BASENAME="`basename $0`" +DESTINATION="$1" +DOMAIN="`facter DOMAIN`" +MEDIA="/var/cache/media" + +# Syntax check +if [ -z "$DESTINATION" ]; then + echo "usage: $BASENAME <DESTINATION>" + exit 1 +fi + +# Process each repository +for file in `ls $MEDIA`; do + if [ -d "$MEDIA/$file/.git/annex" ]; then + ( + echo Processing "$MEDIA/$file..." + + cd $MEDIA + + if ssh $DESTINATION if [ -d \"/var/cache/media/$file\" ] \; then echo exists\; fi | grep -q exists; then + echo "Remote $file already exists, skipping..." + continue; + fi + + git clone $file $file.git && \ + rsync -avz $file.git/ $DESTINATION:/var/cache/media/$file/ && \ + rm -rf $file.git + echo "" + ) + fi +done diff --git a/files/sync-media-init b/files/sync-media-init new file mode 100644 index 0000000..e16dbf0 --- /dev/null +++ b/files/sync-media-init @@ -0,0 +1,43 @@ +#!/bin/bash +# +# Add git-annex remotes to repository in removable media. +# + +# Parameters +BASENAME="`basename $0`" +VOLUME="$1" +DOMAIN="`facter DOMAIN`" +MEDIA="/media/$VOLUME/media.$DOMAIN" +#REMOTE_BOXES="" +#REMOTE_VOLUMES="" + +# Syntax check +if [ -z "$VOLUME" ]; then + echo "usage: $BASENAME <VOLUME>" + exit 1 +fi + +# Process each repository +for file in `ls $MEDIA`; do + if [ -d "$MEDIA/$file/.git/annex" ]; then + ( + echo Processing "$MEDIA/$file..." + cd $MEDIA/$file + echo "Removing origin..." + git remote rm origin + git annex init $VOLUME + + for remote in $REMOTE_BOXES; do + echo "Adding /var/cache/$remote/media/$file remote..." + git remote add $remote /var/cache/$remote/media/$file + done + + for remote in $REMOTE_VOLUMES; do + echo "Adding /media/$remote/media.$DOMAIN/$file..." + git remote add $remote /media/$remote/media.$DOMAIN/$file + done + + echo "" + ) + fi +done diff --git a/manifests/init.pp b/manifests/init.pp index 90882a9..07031de 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -146,6 +146,24 @@ class backup( source => "puppet:///modules/backup/sync-media", } + # sync-media-export script + file { "/usr/local/sbin/sync-media-export": + owner => root, + group => root, + mode => 0755, + ensure => present, + source => "puppet:///modules/backup/sync-media-export", + } + + # sync-media-init script + file { "/usr/local/sbin/sync-media-init": + owner => root, + group => root, + mode => 0755, + ensure => present, + source => "puppet:///modules/backup/sync-media-init", + } + # mount-media script file { "/usr/local/sbin/mount-media": owner => root, |