Bonjour,
J'aimerais rendre automatique l’exécution d'une API OVH, plus précisément celle-ci : https://api.ovh.com/console/#/cloud/project/%7BserviceName%7D/volume/%7BvolumeId%7D/snapshot#POST
J'installe donc PHP sur ma machine, je copie/colle le code PHP donné sur le lien en y entrant bien ma application_key, application_secret et ma consumer_key.
Je place mon script "snapshot.php" dans "/home/herobrix/server".
Avant de l’exécuter en cron, je tente de l’exécuter manuellement depuis cette commande : php snapshot.php.
Mais voici ce que j'obtiens :
Voici le script à exécuter :
Voilà si quelqu'un pouvait m'aider ce serait grandement sympathique ! :3
Public Cloud OVHcloud - Exécuter un script PHP (Debian 9)
Related questions
- Dimensionnement serveur MySQL
37710
07.11.2018 12:32
- [RESOLU] Connexion impossible en SSH
31191
05.06.2019 20:05
- Bonjour, Je n'est reçus aucun mot de passe root lors de mon achat!
26962
05.02.2018 20:47
- Gitlab private docker registry
26626
16.03.2018 13:05
- Configuration IP failover avec netplan (Ubuntu 17.10)
25398
12.01.2018 23:23
- Ssh connection timed out port 22
24796
11.12.2019 08:21
- IP Failover sur Debian 9
24298
18.11.2016 20:40
- Problème connexion ssh
23588
04.02.2018 09:46
- Instance Public Cloud en "error"
21595
15.12.2025 10:04
- Connexion OpenStack Swift Object Storage
19124
11.04.2019 10:09
L'erreur rencontré indique que les fichiers de la librairie n'ont pas été trouvés.
Comme indiqué en haut du script PHP, il faut utiliser le wrapper PHP pour l'API : https://github.com/ovh/php-ovh
Il est possible de l'installer via Composer avec cette commande :
composer require ovh/ovh
(cf. https://github.com/ovh/php-ovh#quickstart)
Si tu n'as pas Composer tu peux l'installer en suivant les instructions ici : https://getcomposer.org/download/
Cela devrait fonctionner par la suite :)
Bonjour,

En effet j'ai entendu parlé de Composer je l'avais donc déjà installé.
J'ai donc directement rentrer la commande que tu m'as conseillé "composer require ovh/ovh", ce qui m'a donné :
Mais l'erreur est toujours la même lorsque je tente d'exécuter le script PHP :/
Il semble que ton script PHP soit dans le dossier /home/herobrix/server
Va dans ce dossier depuis ton terminal et refais la commande composer permettant d'installer le wrapper.
Ah d'accord ! C'est ce que j'ai fait du coup et là j'ai une nouvelle erreur lorsque je tente d'exécuter le script ^^' ! En tout cas merci beaucoup de ton aide, je pense qu'on touche peu à peu au but :) !

Une solution ? :3
Là il y a un problème avec l'authentification à l'API d'OVH, as-tu bien généré tes identifiants avec quelque chose qui ressemble à ça (https://eu.api.ovh.com/createToken/) ?
https://i.goopics.net/eXwaK.png
Note que tu peux autoriser l'accès de ces identifiants qu'à certains chemin de l'API pour certains type de requêtes (GET, POST, PUT, DELETE). Si tu génères tes identifiants comme sur le screenshot ci-dessus ils seront valides pour tous les chemins et types de requêtes de l'API.
Note aussi le champ "Validity", si tu souhaites que tes identifiants soient valides sans limite de temps sélectionnes "Unlimited".
Il est possible que tu obtiennes une erreur "Invalid account/password", j'ai eu cette erreur parce que j'ai utilisé mon adresse email, de mon côté seul l'account ID a fonctionné pour le premier champ du formulaire. L'account ID c'est ton identifiant de compte qui se termine par "-ovh".
Si tu rencontres toujours une erreur INVALID_CREDENTIAL, peux-tu essayer d'exécuter ce bout de code PHP https://api.ovh.com/console/#/auth/currentCredential#GET ? Il permettra de savoir quelles sont les autorisations des identifiants que tu utilises.
Bonjour,

Alors j'ai directement commencé par exécuter l'API "currentCredential" parce que oui j'avais bien remplis le formulaire correctement.
Du coup le résultat a l'air correcte mais je ne peux toujours pas exécuter mon script :
Ensuite je me suis dit que ce serait peut-être parce que j'ai mal copié/collé mes tokens, alors je les ai modifié dans le script et l'erreur est toujours la même. Ca pourrait être ça ? Si oui, est-il possible de regénérer les tokens ?
Un grand merci de bien vouloir prendre le temps de m'aider :)
Je suis paumé là... :(
Helloà @CorentinP3



J'ai jouer rapidement avec le script PHP et j'y suis arrivé.
J'ai d'abord créé mes credential via le lien suivant :
https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*
Voici les info obtenue :
J'ai executé une premiere fois l'API via le bon POST et cliquez sur l'onglet "PHP" pour prendre les info :
Sur mon poste, j'ai ensuite créé un simple fichier sh :
> # touch testapi.sh
> # chmod +x testapi.sh
Et j'ai ensuite copié les info précédente comme ceci :
Il fait simplement appel au call me permettant d'afficher le crédit restant sur un projet donné :
> #!/usr/bin/php
> > /**
> * First, download the latest release of PHP wrapper on github
> * And include this script into the folder with extracted files
> * creation token et ID pour le script :
> * https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*
> * DL github /vendor :
> * https://github.com/ovh/php-ovh/releases
> */
> require __DIR__ . '/api/vendor/autoload.php';
> use \Ovh\Api;
> /**
> * Instanciate an OVH Client.
> * You can generate new credentials with full access to your account on
> * the token creation page
> */
> $ovh = new Api( '', // Application Key
> '', // Application Secret
> 'ovh-eu', // Endpoint of API OVH Europe (List of available endpoints)
> ''); // Consumer Key
> $result = $ovh->post('/cloud/project//instance//snapshot', array(
> 'snapshotName' => '', // Snapshot name (type: string)
> ));
> print_r( $result );
> ?>
==> pense à bien adapter avec tes crédential et info ce que j'ai mis entre .
[Edit : je viens de voir que j'ai fais un snap pour l'instance, mais pour le volume, tu n'a qu'a reprendre l'ensemble des éléments du call qui va bien :
https://api.ovh.com/console/#/cloud/project/%7BserviceName%7D/volume/%7BvolumeId%7D/snapshot#POST ]
Après, il te suffit de mettre des variables et d'adapter les différentes partie selon l'utilisation que tu souhaite en faire.
En tout cas, de mon côté, ça marche o/
Jalinn
Merci pour ta réponse !


De base le script je lui avais donné pour extension .php soit "snapshot.php". J'ai donc essayé de lui donner l'extension .sh et cette fois j'ai une autre erreur :
Voici mon script :
Mon script se trouve dans "/home/herobrix/server".
Et j'ai bien entré la commande : chmod +x snapshot.sh
Je serais bien tenté de régénérer des tokens mais ça me dit que des tokens ont déjà été générés pour ce nom. Mais je me souviens avoir pris justement le soin de bien les copier/coller sur un fichier pour ne pas les perdre donc ça m'étonnerait que ce soit à cause de ça... Ou alors c'est possible de les retrouver ?
Je pense que l'erreur proviens du fait que ton user n'a pas les droits pour acceder à l'ensemble des process necessaires.
Tu peux tenter de le relancer avec la commande sudo ?
ou passer directement en root avec la commande su par exemple ?
Pour le Token, tu devra donner un autre nom si tu veux en générer un nouveau en effet.
Ah d'accord, bah ça fonctionne xD
Quand j'avais l'erreur "Ce nom a déjà été pris pour générer les tokens" je pensais que ça parlait de mon nom d'utilisateur. En fait ça parlait du nom du service.
J'ai donc changé de nom, mis les nouvelles valeurs sur mon script et voilà !
Merci beaucoup haha x)) ! Je me doutais que c'était pas grand chose !!
\o/
Ta plus qu'a scripter tout ça et mettre en place ta tache cron.
Tu devra penser aussi à utiliser le call pour delete les vieux snap si tu veux faire un rotate des snap :)
Jalinn.
Oui ça pourrait être intéressant mais encore ça je peux le faire manuellement, de toute façon une snapshot est facturé pour le mois donc j'aurais 30 jours pour faire cela ^^
Bref dans les jours qui viennent je vais toucher aux autres APIs notamment pour détacher le volume de l'instance et le rattacher. Le temps de faire la snapshot, c'est plus conseillé.
Ca devrait aller, c'est toujours le même principe mais je vais laisser ce sujet ouvert au cas où. :)
Encore merci à ThomasF et à toi Jalinn de m'avoir aidé :D !
Pour ton info, le snap est en facturation HORAIRE sur PCI.
En gros, c'est 0,01 cts/mois/Go. Si tu fais un snap de 100 Go, il te reviens à 1€ pour un mois.
Mais si tu le fait en cours de mois et que tu le delete au bout de 15 jours (par ex), il te sera facturé que 0,5 cts.
Donc, si tu joue avec la rotation de tes snap, tu pourras avoir un backup regulier pour un montant relativement stable au fil du mois.
A ta dispo au besoin.
Jalinn
Aaaah ! Très bon à savoir, je ne pensais pas que ça fonctionnait comme ça ^^ ! Merci bien pour l'info !