#!/bin/bash # # Install the Hydra Suite on multiple nodes. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program 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 Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public # License along with this program. If not, see # . # Load source $APP_BASE/lib/hydra/functions || exit 1 hydra_config_load # Command line arguments NODES="$*" # Build node list if [ -z "$NODES" ]; then NODES="`hydra $HYDRA nodes`" fi # Validation if [ -z "$ORIGIN" ]; then ORIGIN="git://git.sarava.org/hydra.git" fi # Deploy for node in $NODES; do echo "Installing to $node..." $HYDRA_CONNECT $node < /dev/null; then echo "Installing git..." sudo aptitude update sudo aptitude install git-core -y fi if [ ! -d /usr/local/hydra ]; then sudo git clone $ORIGIN /usr/local/hydra ( cd /usr/local/hydra ; sudo git reset --hard $COMMIT ) else ( cd /usr/local/hydra ; sudo git pull ; sudo git reset --hard $COMMIT ) fi # Update symlinks sudo ln -sf /usr/local/hydra/hydra /usr/local/bin/hydra sudo ln -sf /usr/local/hydra/hydra /usr/local/bin/hydractl sudo ln -sf /usr/local/hydra/hydras /usr/local/bin/hydras # Remove from old location # We keep hydra on /usr/local/bin as /usr/local/sbin might # not be available on $PATH when connecting to a remote system. sudo rm -f /usr/local/sbin/hydra sudo rm -f /usr/local/sbin/hydractl sudo rm -f /usr/local/sbin/hydras ##### END REMOTE SCRIPT ####### EOF done