Archive for November 21st, 2010

Ovh mcloud soap api. Utilitaire ligne de commande.

Voici mon utilitaire pour dialoguer avec les API Soap du mini cloud.

Mais ca sert à quoi ?

  • Ca permet d’interagir afin de démarrer les instances via la ligne de commande, plutôt que via le manager.
  • on peut facilement avoir les infos sur l’instance, son IP
  • L’utilitaire est facilement interfaçable dans les scripts.

Installation

>apt-get install libsoap-lite-perl

Et accepter toutes les dépendances.
Il suffit après de copier le fichier ovh.pm et ovh.pl dans n’importe quel répertoire.

>wget http://svn.gallot.be/blog/ovh-cloud-api/ovh.pm
>wget http://svn.gallot.be/blog/ovh-cloud-api/ovh.pl
>chmod a+x ovh.pl

Une petite vérification des fichiers n’est pas superflue.

>md5sum ovh.pl ovh.pm
62bdf222e4bffc594afd694615072619  ovh.pl
243f87546259223f7490f8b40870e548  ovh.pm

Utilisation

Lister les projets

>ovh.pl –u username –p password –a listservice

Lister les vms du projet ‘AppScale’

ovj.pl –u username –p password –a listvm –s AppScale

Démarrer une vm

ovj.pl –u username –p password –a startvm –m vm-01

Arrêter une vm

ovj.pl –u username –p password –a stopvm –m vm-01

Rebooter une vm

ovj.pl –u username –p password –a rebootvm –m vm-01

Voici quelques exemples d’utilisation

Shutdown amélioré.

http://svn.gallot.be/blog/ovh-cloud-api/shutdown.sh

Ce script, détecte l’ip de l’hôte. Recherche le nom de la vm dans le cloud et arrête la vm ! Il faut bien entendu mettre les bons paramètres pour username et password.

#!/bin/sh
USERNAME=$1
PASSWORD=$2
MYIP=`ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`
VMNAME=`./ovh.pl -u $USERNAME -p $PASSWORD -q -a listvm | grep $MYIP | awk '{ print $1}'`
./ovh.pl -u $USERNAME -p $PASSWORD -a stopvm -m $VMNAME

Démarrer tous les vm d’un projet

http://svn.gallot.be/blog/ovh-cloud-api/startall.sh

#!/bin/sh
USERNAME=$1
PASSWORD=$2
PROJECT=$3
./ovh.pl -u $USERNAME -p $PASSWORD -q -a listvm –s $PROJECT | grep stopped | awk '{ print $1}' | while read vm ; do
  echo Starting $vm
  ./ovh.pl -u $USERNAME -p $PASSWORD -a startvm -m $vm
done

Arrêter tous les vm d’un projet

http://svn.gallot.be/blog/ovh-cloud-api/stopall.sh

#!/bin/sh
USERNAME=$1
PASSWORD=$2
PROJECT=$3
./ovh.pl -u $USERNAME -p $PASSWORD -q -a listvm –s $PROJECT | grep running | awk '{ print $1}' | while read vm ; do
  echo Stopping $vm
  ./ovh.pl -u $USERNAME -p $PASSWORD -a stopvm -m $vm
done