Backup par Snapshot Public Cloud Instance
... / Backup par Snapshot Publi...
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Question

Backup par Snapshot Public Cloud Instance

by
YaLG
Created on 2017-03-02 11:14:19 (edited on 2024-09-04 10:47:50) in Public Cloud-old

Bonjour à tous,

J'ai un besoin, qui je pense n'est pas propre qu'à mon usage!

**Problématique :**
J'ai actuellement des instances PCI que je souhaiterais sauvegarder par Snapshot (pratique, possible de restaurer sur une autre instance, assez fiable), tant qu'à faire 1 snap par jour, avec un nombre de snapshot historisé, et suppression automatique des snapshot trop anciens. (une sauvegarde quoi...), et pourquoi pas externaliser ces snap si besoin. (Je sais, cela présente une légère indisponibilité des serveurs, mais d'un autre côté, j'ai un traffic 0 en dehors des heures de bureau...)

**Constat :**
Actuellement aucun outil n'est disponible directement chez OVH, pas grave! Pourquoi pas ne l'intégrer à mon outil en utilisant les API. Oups, on me dit sur Twitter (FraC) qu'il n'y à pas de doc!

**Conclusion :**
Comment puis-je être en situation de réaliser mes rèves ? Faire appel à la communauté!

En bref, quelqu'un à des tuyaux sur le sujet?

Merci à tous pour votre attention!


3 Replies ( Latest reply on 2019-05-14 02:38:46 by
SimonD5
)

A mon avis cela doit être faisable via l'API d'Openstack, je n'ai pas vérifié mais si c'est le cas il suffirait de regarder la doc d'Openstack.

Bon courage.

En effet du courage il va falloir en avoir...

Je ne connais pas particulièrement Openstack et la multitude d'API est assez conséquente... Je ne sais même pas à quel API Openstack faire appel pour faire un snapshot d'une instance... :sweat:

C'est faisable via l'api d'ovh.
Cela demande quelques scripts évidemment...

Effectivement un panel qui gère ça serait un +, malheureusement ce n'est pas dispo.

Pour ce qui est des snapshots uniquement de l'instance (volume attaché non pris en compte) avec rotate automatique.

Simple, rapide, efficace, puppetisable ?

A faire sur l'instance à backup:

`~$ sudo apt install python-dev python-pip
~$ sudo pip install python-openstackclient
~$ sudo sh -c 'cat > /root/openrc.sh'
#!/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=4c2c.....166
export OS_TENANT_NAME="541....83"

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

# With Keystone you pass the keystone password.
export OS_PASSWORD="password"

# 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
#### #Bien penser à modifier : OS_TENANT_ID , OS_TENANT_NAME, OS_USERNAME, OS_PASSWORD, OS_REGION_NAME

~$ sudo chmod 600 /root/openrc.sh
~$ sudo crontab -e
0 0 * * * source /root/openrc.sh && openstack server backup create $(dmidecode -s system-uuid | tr [:upper:] [:lower:]) --name $(hostname)-daily-$(date +\%F_\%H-\%M-\%S) --type daily --rotate 6 --wait
`
#### Pas testé le crontab mais doit fonctionner car fonctionne à la main
#### % doit être escape dans le crontab, d'où les \%

Il n'existe pas encore à ma connaissance d'outil similaire dans l'api OpenStack pour les volumes attachés (Cinder).

Ciao

Merci DanielU pour ce script très complet, je vais m'atteler à tester cela.

C'est dommage qu'il n'y ai pour l'instant rien en API HTTP cela aurait permis de l'automatiser depuis une app web...

Petit tuto avec automatisation des backups pour les instances et les volumes : https://github.com/Nexenture/openstack-instances-backups

Pas mal les scripts se ressemblent sans se ressembler, l'un est plus completque l'autre (scan de toutes les instances puis backup) mais au final cela fait son travail.

Donc pour résumer :
- Renseigner les crédentials
- Utiliser l'api nova en backup

Merci à tous, je pense que ça pourrait figurer dans les docs OVH, car quasi indispensable vu qu'il n'y à pas d'outil intégré.

You can try this service to make automated backups of OVH Public Cloud https://backupsheep.com

Je cherchais à développer mon propre outil en interne pour une utilisation en entreprise mais backupsheep fonctionne très bien (pour un prix dérisoire si on souhaite avoir plusieurs backup automatisé).
En plus, le développeur est ouvert aux évolutions et très réactifs.