]> gitweb.fluxo.info Git - hydra.git/commitdiff
Local deployment enhancements
authorSilvio Rhatto <rhatto@riseup.net>
Sun, 20 Sep 2015 22:16:56 +0000 (19:16 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Sun, 20 Sep 2015 22:16:56 +0000 (19:16 -0300)
share/hydractl/deploy

index d61519e6b565a1be9502f6904595e3296c40ae4d..7bedb1e9ee7405ba478cf03a51b598386748bfef 100755 (executable)
@@ -22,9 +22,36 @@ hydra_config_load
 
 # Parameters
 MANIFEST="`facter fqdn`.pp"
+FOLDER="$1"
 
-# Run puppet
-if [ -e "$HYDRA_FOLDER/puppet/manifests/nodes/$MANIFEST" ]; then
-  sudo puppet apply --confdir=$HYDRA_FOLDER/puppet \
-                    --modulepath=$HYDRA_FOLDER/modules $HYDRA_FOLDER/puppet/manifests/nodes/$MANIFEST
+# Set sudo config
+local sudo device rsync
+if [ "`whoami`" != 'root' ]; then
+  sudo="sudo"
+fi
+
+# Dispatch
+if [ ! -z "$FOLDER" ]; then
+  if [ ! -d "$FOLDER"]; then
+    echo "folder not found: $FOLDER"
+    exit 1
+  fi
+
+  echo "Deploying to $FOLDER..."
+
+  # Saner defaults
+  $sudo mkdir -p       $FOLDER/etc/puppet
+  $sudo chown -R root. $FOLDER/etc/puppet
+  $sudo chmod -R 640   $FOLDER/etc/puppet
+
+  # Sync repository to server
+  # Exclude eventual keys and version control files
+  $sudo rsync -CrltDv --no-perms --exclude=keys --delete $HYDRA_FOLDER/puppet/ $FOLDER/etc/puppet/
+
+  # Run puppet
+  $sudo chroot $FOLDER puppet apply /etc/puppet/manifests/nodes/$MANIFEST
+elif [ -e "$HYDRA_FOLDER/puppet/manifests/nodes/$MANIFEST" ]; then
+  # Run puppet
+  $sudo puppet apply --confdir=$HYDRA_FOLDER/puppet \
+                     --modulepath=$HYDRA_FOLDER/modules $HYDRA_FOLDER/puppet/manifests/nodes/$MANIFEST
 fi