From 80ae6d9411035e35a650d06eab23b140a8309816 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Thu, 25 Jan 2018 22:28:46 +0100 Subject: started a complete rewrite --- src/manage.sh | 189 ---------------------------------------------------------- 1 file changed, 189 deletions(-) delete mode 100755 src/manage.sh (limited to 'src/manage.sh') diff --git a/src/manage.sh b/src/manage.sh deleted file mode 100755 index e44a52e..0000000 --- a/src/manage.sh +++ /dev/null @@ -1,189 +0,0 @@ -#!/bin/sh -# -# flufigut -# -# flufigut, the flumotion configuration utility, is a simple tool -# that generates flumotion configuration files using pyhton jinja2 -# template engine and simplejson. flufigut generates planet.xml -# and worker.xml files from configuration templates and an easy to -# understand representation of the flow structure written in json. -# -# -# Copyright (C) 2012-2014 Christian Pointner -# Michael Gebetsroither -# -# This file is part of flufigut. -# -# flufigut is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# any later version. -# -# flufigut 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with flufigut. If not, see . -# - -# -# Initialization: -# - generate ssh key: -# $ ssh-keygen -f id_rsa -# - configure ssh.config -# - copy flufigut-client.sh to every machine and install it -# $ sudo ./flufigut-client.sh install -# - -OUTPUT_DIR="$1/flumotion" -SSH_KEY="$1/id_rsa" -SSH_CONFIG="$1/ssh.config" -SSH_USER="flufigut" - -deploy_all() { - for machine in "$OUTPUT_DIR"/*; do - if [ -d "$machine" ]; then - machine=`basename $machine` - echo "copying files to $machine ... " - tar -C "$OUTPUT_DIR" -czf "$OUTPUT_DIR/$machine.tar.gz" "$machine" - scp -i "$SSH_KEY" -F "$SSH_CONFIG" "$OUTPUT_DIR/$machine.tar.gz" $SSH_USER@"$machine":/tmp - ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" install "/tmp/$machine.tar.gz" - fi - done -} - -clean_all() { - for machine in "$OUTPUT_DIR"/*; do - if [ -d "$machine" ]; then - machine=`basename $machine` - echo "removing files from $machine ... " - generate_instance_list $machine - ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" remove < "$OUTPUT_DIR/$machine.list" - fi - done -} - -wipe_all() { - for machine in `grep "^Host" $SSH_CONFIG | awk '{ print($2) }'`; do - echo "wipeing files belonging to planet '$1' from $machine ... " - ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" wipe "$1" - done -} - -generate_instance_list() { - machine=$1 - - rm -f "$OUTPUT_DIR/$machine.list" - touch "$OUTPUT_DIR/$machine.list" - if [ -d "$OUTPUT_DIR/$machine/managers" ]; then - for name in "$OUTPUT_DIR/$machine/managers/"*; do - name=`basename "$name"` - echo "manager $name" >> "$OUTPUT_DIR/$machine.list" - done - fi - for name in "$OUTPUT_DIR/$machine/workers/"*.xml; do - name=`basename "$name"` - name=${name%%.xml} - echo "worker $name" >> "$OUTPUT_DIR/$machine.list" - done -} - -start_all() { - for machine in "$OUTPUT_DIR"/*; do - if [ -d "$machine" ] && [ -d "$machine/managers" ]; then - machine=`basename $machine` - echo " $machine (manager, worker)" - generate_instance_list $machine - ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" start < "$OUTPUT_DIR/$machine.list" - break - fi - done - for machine in "$OUTPUT_DIR"/*; do - if [ -d "$machine" ] && [ ! -d "$machine/managers" ]; then - machine=`basename $machine` - echo " $machine (worker)" - generate_instance_list $machine - ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" start < "$OUTPUT_DIR/$machine.list" - fi - done -} - -stop_all() { - for machine in "$OUTPUT_DIR"/*; do - if [ -d "$machine" ] && [ ! -d "$machine/managers" ]; then - machine=`basename $machine` - echo " $machine (worker)" - generate_instance_list $machine - ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" stop < "$OUTPUT_DIR/$machine.list" - fi - done - for machine in "$OUTPUT_DIR"/*; do - if [ -d "$machine" ] && [ -d "$machine/managers" ]; then - machine=`basename $machine` - echo " $machine (manager, worker)" - generate_instance_list $machine - ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" stop < "$OUTPUT_DIR/$machine.list" - break - fi - done -} - -print_usage() { - echo "flufigut management script by Christian Pointner " - echo "" - echo "Usage $0 " - echo "" - echo "Commands:" - echo " deploy copies all configuration file to all servers and installs them" - echo " clean remove all configuration file from all servers" - echo " wipe purges all configuration files belonging the planet" - echo " start starts all instances on all servers (manager starts first)" - echo " stop stop all instances on all servers (manager stops last)" - echo " restart same as stop, start" - echo " help prints this" -} - -if [ -z "$1" ]; then - print_usage - exit 1 -fi - -case "$2" in - deploy) - echo "Deploying configuration to all machines ..." - deploy_all - ;; - clean) - echo "cleaning/removing configuration from all machines ..." - clean_all - ;; - wipe) - echo "wipeing configuration for from all machines inside ssh-config ..." - wipe_all "$1" - ;; - start) - echo "Start manager and worker on all machines ..." - start_all - ;; - stop) - echo "Stop manager and worker on all machines ..." - stop_all - ;; - restart) - echo "Restart manager and worker on all machines ..." - stop_all - sleep 1 - start_all - ;; - help) - print_usage - ;; - *) - echo "Usage $0 (deploy|clean|wipe|start|stop|restart|help)" - exit 1 - ;; -esac - -exit 0 -- cgit v1.2.3