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

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
Problème résolu.
Merci pour les infos de debug.
salut
merci d’avoir régler le problème
Merci pour ces scripts ! Très utiles !
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…
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.