David Mercereau : [API OVH] Reboot d’un VPS via un script PHP
mardi 15 mars 2016 à 14:21OVH possède une API qui peut s’avérer très pratique pour automatiser des tâches du manager : https://api.ovh.com
J’ai choisi d’utiliser le PHP pour ces scripts car il est déjà installé sur mes machines, je n’ai donc pas besoin de supplément.
Premier test, lister mes VPS
Je commence gentils, je fais un script qui listera simplement les VPS disponible chez OVH.
Télécharger et décompressé la dernière version de « php-ovh » et ces dépendances : https://github.com/ovh/php-ovh/releases
root@monsrv:~# mkdir ovhphp/ root@monsrv:~# cd ovhphp/ root@monsrv:~/ovhphp# wget https://github.com/ovh/php-ovh/releases/download/v2.0.0/php-ovh-2.0.0-with-dependencies.tar.gz root@monsrv:~/ovhphp# tar -xzvf php-ovh-2.0.0-with-dependencies.tar.gz
Ensuite on crée un tocken via cette URL : https://api.ovh.com/createToken/?GET=/vps ou on ne va autoriser que le GET sur /vps.
On va obtenir la page suivante, il va falloir conserver Application Key, Application Secret & Consumer Key pour les mettre dans le script :
On va pouvoir créer le script suivant (pensez à recopier vos Application Key, Application Secret & Consumer Key dans les variables) :
#!/usr/bin/php get('/vps'); print_r($vps); ?>
Lancement du script, voici le résultat :
root@romeo:~/ovhphp# php getvps.php Array ( [0] => vks00000.ip-XX-XX-XX.eu )
vks00000.ip-XX-XX-XX.eu c’est le nom de mon VPS (pour l’exemple), ça fonctionne.
Les choses sérieuses : un reboot
Même script avec action cette fois, pour tester le reboot d’un VPS via un script.
De nouveau la création d’API avec l’url https://api.ovh.com/createToken/?POST=/vps/vks00000.ip-XX-XX-XX.eu/reboot. Ici on va autoriser le POST sur /vps/vks00000.ip-XX-XX-XX.eu/reboot.
#!/usr/bin/php post('/vps/vks00000.ip-XX-XX-XX.eu/reboot'); print_r($vps_reboot); ?>
Au lancement on obtient le numéro de la tâche :
root@romeo:~# php postrebootvps.php Array ( [progress] => 0 [id] => 5119979 [type] => rebootVm [state] => todo )
Et ça fait bien redémarrer le VPS…
La finalité
De temps en temps mon VPS est inaccessible. C’est très variable (1 à 2 fois par mois environ) et je ne trouve pas la cause (OVH / système / attaque ?). La seul solution pour le faire repartir c’est un reboot via le manager OVH. En attendant de trouver la cause (je ne désespère pas) j’ai mis en place ce script sur un serveur tiers afin de déclencher un reboot si le serveur est inaccessible.
#!/usr/bin/php post('/vps/vks10057.ip-37-59-126.eu/reboot'); print_r($vps_reboot); } else { echo "Le serveur est peut être planté mais peut être pas... il ne semble pas y a voir interne, on fait rien !\\n"; } } } exit(0); ?>
En tâche planifiée :
15,45 * * * * /root/ovhphp/check-serveur.php
Original post of David Mercereau.Votez pour ce billet sur Planet Libre.
Articles similaires
- David Mercereau : [Web-Dynamic-Dnsupdate] Administrer vos zones DNS sans base de données (03/08/2012)
- David Mercereau : emailPoubelle.php – script libre d’email jetable (07/08/2012)
- David Mercereau : Script de sauvegarde Mysql par base « mysql_dump.sh » (05/12/2012)
- David Mercereau : [rkhunter] Warning The file properties have changed (09/01/2013)
- David Mercereau : pongSmtp.pl – Tester le bon fonctionnement de votre serveur mail (28/02/2013)