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

9 Responses to “Ovh mcloud soap api. Utilitaire ligne de commande.”


  1. 1la_flegme

    salut

    je viens de tester et cela ne vas pas j’ai une erreur

    Not an ARRAY reference at ./ovh.pl line 223.

    a ton avis cela viens de quoi ?

    Merci

  2. 2Dominique Gallot

    Problème résolu.
    Merci pour les infos de debug.

  3. 3la_flegme

    salut

    merci d’avoir régler le problème ;)

  4. 4Cyril

    Merci pour ces scripts ! Très utiles !

  5. 5Paca

    Bonjour,

    Merci pour ton script, j’aimerai savoir vous aviez déjà réussis a utiliser la fonction createVm, j’essaye sans succès depuis ce matin…

    Les paramètres targetType et characteristics je voie pas trop a quoi sa correspond…

  6. 6Dominique Gallot

    Oui, j’avais reussi a utiliser cette fonction.
    Pour les paramèters targetType et characteristics je les avais repris d’une autre Vm qui fonctionait.

  1. [...] Gallot a mis au point des scripts PERL qui utilisent cette API pour effectuer toutes sortes d’actions sur le [...]

  2. [...] scripts PerlDominique Gallot a mis au point des scripts PERL qui utilisent cette API pour effectuer toutes sortes d’actions sur le MiniCloud.Avec SoapUISoapUI [...]

  3. [...] scripts PerlDominique Gallot a mis au point des scripts PERL qui utilisent cette API pour effectuer toutes sortes d’actions sur le MiniCloud.Avec SoapUISoapUI [...]

Leave a Reply