#!/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="$*" # Dependencies hydra_install_package rsync # Build node list if [ -z "$NODES" ]; then NODES="`hydra $HYDRA nodes`" fi # Get origin ORIGIN_CONFIG="`hydra $HYDRA config git`" # Validate origin if [ ! -z "$ORIGIN_CONFIG" ]; then ORIGIN="$ORIGIN_CONFIG/hydra" else ORIGIN="https://git.fluxo.info/hydra" fi # Deploy for node in $NODES; do echo "Installing Hydra Suite into $node..." # Handles localhost if [ "$node" == "localhost" ] || [ "$node" == "`facter fqdn`" ] || [ "$node" == "`facter hostname`" ]; then $APP_BASE/hydractl install localhost continue fi # Rsync version rsync -rltDv --no-perms --delete --rsync-path "sudo rsync" $APP_BASE/ $node:/usr/local/share/hydra/ # Proceed installation remotely $HYDRA_CONNECT $node /usr/local/share/hydra/hydractl install done