Stockage à froid OVH pour backup low cost : Un tuto

Il m’a fallu une demi journée pour comprendre comment ça marche, alors je vous passe le tuto, des fois que ça aide…

Stockage à froid

Le stockage à froid, c’est pour les données qu’on ne veut pas perdre, mais dont on n’a jamais un besoin urgent.
Ce sont les cartons qu’on range au grenier, ou dans un entrepôt de stockage.

L’avantage, c’est que c’est hors site, et bien moins cher que du stockage en ligne.

Depuis quelques années, on avait Amazon Glacier, avec la lourdeur habituelle d’Amazon
Depuis quelques mois, Online C14 avec des prix plus légers et une tarification mixte (opérations et stockage)
(ça marche bien, au passage : https://www.online.net/fr/c14) 0.002€HT/Mois pour 1Go, ça va bien, non ?
Et dernièrement la solution « cloud archive » d’OVH : https://www.ovh.com/fr/cloud/storage/cloud-archive.xml
(même tarification que C14, pas cher)
J’ai voulu tester, parceque tout en bas, on voit que c’est censé fonctionner avec des protocoles ouverts comme Rsync, SFTP et SCP. Cool ça, ça voudrait dire que je peux recycler mes scripts de backup existants pour envoyer au frigo ?

Pas si vite Mado !

Ben oui, OVH n’est pas spécialement encensé pour l’ergonomie de son interface ni de sa doc.
Et là, ben… il manque carrément des infos qu’on ne peut pas deviner.
Heureusement, il y a des gens chez @ovh_support qui restent patients et prennent le temps d’aller chercher les infos, remonter les questions, et apporter des réponses. sisi, vrai de vrai.

Allez coco, aboule le tuto

Pour archiver un fichier via scp, on est censé faire une invocation du type

scp archive.tar.gz pca@gateways.storage.gra1.cloud.ovh.net:container/

On décompose :

  • pca est à conserver. C’est un nom fixe dans tous les cas.
  • gateways.storage.gra1.cloud.ovh.net est à ajuster selon votre datacenter. Pour moi, j’avais choisi Strasbourg, et c’est donc gateways.storage.sbg1.cloud.ovh.net C’est indiqué sous « Stockage » en face de votre conteneur.
  • container est le nom de votre conteneur dans l’interface OVH (voir ci-dessous)

snapshot de mon interface, dans la section « Cloud » :
tuto ovh cloud archive stockage à froid
On y voit le « SBG1 » à utiliser dans l’url et le « cocon1 » qui est le nom de mon conteneur.

Ma commande est donc

scp archive.tar.gz pca@gateways.storage.sbg1.cloud.ovh.net:cocon1/

Oh ! un mot de passe ! Ben oui, ça serait trop simple 😉
On le trouve où ? Facile, suivez moi encore 2 minutes :

Le mot de passe qui déchire sa race

Pour avoir votre mot de passe cloud archive Ovh, il vous faut donc :

1/ Créer un identifiant Openstack en cliquant dans l’interface, on a ça, j’ai flouté l’id :
mot de passe cloud archive ovh
Notez le Mot de passe, qu’on appelle PASSWORD. Dans mon cas on va dire que c’est « tousseul »

De là, cliquez sur la clé à droite, « Télécharger un fichier de configuration openstack », et indiquez n’importe quelle région.

Le fichier ressemble à ça (infos bidons):

#!/bin/bash

# To use an Openstack cloud you need to authenticate against keystone, which
# returns a **Token** and **Service Catalog**. The catalog contains the
# endpoint for all services the user/tenant has access to - including nova,
# glance, keystone, swift.
#
# *NOTE*: Using the 2.0 *auth api* does not mean that compute api is 2.0. We
# will use the 1.1 *compute api*
export OS_AUTH_URL=https://auth.cloud.ovh.net/v2.0/

# With the addition of Keystone we have standardized on the term **tenant**
# as the entity that owns the resources.
export OS_TENANT_ID=585d12255ba3c2bcd9cdc220440dc1e
export OS_TENANT_NAME="6898826585648243"

# In addition to the owning entity (tenant), openstack stores the entity
# performing the action as the **user**.
export OS_USERNAME="Ahbenjorépastrouvé"

# With Keystone you pass the keystone password.
echo "Please enter your OpenStack Password: "
read -sr OS_PASSWORD_INPUT
export OS_PASSWORD=$OS_PASSWORD_INPUT

# If your configuration has multiple regions, we set that information here.
# OS_REGION_NAME is optional and only valid in certain environments.
export OS_REGION_NAME="SBG1"
# Don't leave a blank variable, unset it if it was empty
if [ -z "$OS_REGION_NAME" ]; then unset OS_REGION_NAME; fi

Le fichier lui même ne sert pas tel quel. Juste une info importante à y piocher.

Dans ce fichier, récupérez
OS_TENANT_NAME soit dans mon cas bidon 6898826585648243 et OS_USERNAME (ce dernier se trouve être l’identifiant de votre utilisateur openstack)

Maintenant, interlude cuisine :
Pour obtenir votre mot de passe, vous assemblez, avec un point « . » entre deux, les éléments suivants :
OS_TENANT_NAME.OS_USERNAME.PASSWORD

dans mon cas bidon, ça donne donc
6898826585648243.Ahbenjorépastrouvé.tousseul
cette chaîne est votre mot de passe.

Facile, non ?
De là, on scp ou sftp ou rsync comme on ferait avec n’importe quel host qui supporte ssh.

Ohlà, pas tout à fait, René

Ben oui… les bonnes pratiques surtout quand on veut scripter des choses en ssh, ce n’est pas d’utiliser des mots de passe, mais des clés ssh.
Ici, ce n’est pas supporté. On ne peut pas copier ses clés et on est donc coincé avec une auth par mot de passe.

On va donc se rabattre sur des solutions comme
sshpass ou expect : stack overflow et ses copains sont vos amis, cf
http://serverfault.com/questions/318474/how-to-pass-password-to-scp-command-used-in-bash-script
ou
http://serverfault.com/questions/132405/connect-through-ssh-and-type-in-password-automatically-without-using-a-public-k

La commande finale, après un petit apt-get install sshpass :

sshpass -p '6898826585648243.Ahbenjorépastrouvé.tousseul' scp archive.tar.gz pca@gateways.storage.sbg1.cloud.ovh.net:cocon1/

Tweeter « Le tuto stockage cloud archive #OVH, ça ne s’invente pas »

Merci Jean Mimi

Merci au support OVH. J’aurais préféré un produit fini avec une doc hein, ça mange pas de pain et ça fait gagner du temps, mais je n’aurais pas eu l’occasion de passer encore plus de temps à écrire ce tuto, alors bon… et puis je me mets à la place du coup des clients cocon.se qui n’ont pas toujours la doc qui leur va bien, et là je baisse la tête et je retourne à mon clavier pour passer ce backup en prod et blinder les données de leurs crawls.

La bise les amis 🙂

Update : le doc OVH est désormais dispo ici :
https://docs.ovh.com/fr/fr/cloud/pca/
Avec en plus une explication du « dégelage » des objets stockés.

D’autres articles techniques ? Par ici Fifi :