====== Installation du script de transfert des sauvegardes des instances des serveurs ====== L'objectif est de mettre en place un script se chargeant de transférer les dernières sauvegardes des instances "db-srv" et "web-srv" présentes sur le datacenter de Gravelines vers celui de Londres. Il se lancera automatiquement tous les jours. ===== Installation d'OpenStack Client (OSC) ===== * Se connecter à l'instance "bkp-srv" en tant que "backups" : '' ssh backups@bkp--sinp '' * Installer l'environnement virtuel spécifique à openstack client (OCS) : '' virtualenv --python=python3 osc-env '' * Activer l'environnement : ''source osc-env/bin/activate'' * S'il s'avère nécessaire de mettre à jour Pip : * Vérifier la présence de Pip : '' pip --version '' * Mettre à jour Pip vers sa dernière version : '' pip install --upgrade pip '' * Vérifier la version de Pip: '' pip --version '' * Installer le client OpenStack avec Pip : * Installer le client OpenStack : '' pip install python-openstackclient '' * Vérifier la bonne installation du client : '' openstack --help '' * Installer son auto-complétion sous Bash : ''openstack complete | sudo tee /etc/bash_completion.d/osc.bash_completion > /dev/null '' * Ré-ouvrir un terminal pour activer l'auto-complétion ===== Accéder à OSC sans activer l'environnement virtuel ===== * Créer un dossier //~/bin// avec : ''mkdir ~/bin '' * Modifier le fichier //~/.bashrc// afin d'autoriser l'accès aux exécutable du dossier //~/bin// lors d'un accès par SSH avec : '' vi ~/.bashrc '' * Ajouter au début du fichier avant le commentaire «// # If not running interactively, don't do anything //» le code : # Set PATH here to include user's private bin for SSH login # It's necessary for using OpenStack Client ! if [[ -d "${HOME}bin" && ":$PATH:" != *":${HOME}bin:"* ]] ; then PATH="${HOME}bin:${PATH}" fi * Recharger l'environnement : '' source ~/.bashrc '' * Ajouter le lien symbolique vers l’exécutable d'OSC : '' ln -s ~/osc-env/bin/openstack ~/bin/openstack '' * Vérifier que l'environnement virtuelle est bien désactivé : '' deactivate '' * Tester avec la version d'OSC : '' openstack --version '' ===== Mise en place du volume "bkp-storage" (Block Storage) ===== * Commande un volume Block Storage dans le Public Cloud en le nommant : "bkp-storage" * Suivre les indications [[serveurs:solution-hebergement-infos#creation_des_volumes_de_stockage_block_storage| concernant la commande du volume "bkp-storage" et son attachement au serveur "bkp-srv"]] * Puis suivre les indications [[serveurs:installation:volume-block-storage| de configuration et montage du volume]] * Il n'est pas nécessaire de mettre en place de sauvegarde du volume "bkp-storage" car il contient lui même des sauvegardes... * Créer le dossier qui contiendra les images des serveurs : '' mkdir /data/srv-img-bkp ; chown backups: /data/srv-img-bkp/ '' ===== Installation du script de transfert des instances ===== Le script ''backup_instance.sh'' sera utilisé par l'utilisateur "//backups//" de l'instance "//bkp-srv//" pour exécuter le transfert des sauvegardes des instances du datacenter de Gravelines (GRA7) vers le datacenter de Londres (UK-1). De façon temporaire, les instances sont stockées sur le volume "bkp-storage" dans le dossier ''/data/srv-img-bkp/GRA7''. * Se connecter à l'instance "bkp-srv" en tant qu'utilisateur "backups" : '' ssh backups@bkp--sinp '' * Créer un dossier //~/bin/// s'il n'existe pas déjà : '' mkdir ~/bin '' * Modifier le fichier //~/.bashrc// pour prendre en compte les scripts présents dans le dossier //~/bin///. Si le code suivant n'est pas déjà présent ajouter le : # Set PATH so it includes user's private bin if it exists and not already set if [[ -d "${HOME}bin" && ":$PATH:" != *":${HOME}bin:"* ]] ; then PATH="${HOME}bin:${PATH}" fi * En local sur votre machine placer vous à la racine de votre dépôt //sinp--srv// : '' cd ~/workspace/sinp--srv/ '' * À l'aide de //Rsync// uploader le scripts de sauvegarde des instances et les fichiers qui lui sont associé : rsync -av bkp-srv/home/backups/bin/ backups@bkp--sinp:/home/backups/bin/ --dry-run (si tout est ok, supprimer l'option ''--dry-run'') * À l'aide de //Rsync// uploader le cron : rsync -av bkp-srv/etc/crond.d/ admin@bkp--sinp:/home/admin/dwl/ --dry-run (si tout est ok, supprimer l'option ''--dry-run'' * Si ce n'est pas déjà fait, créer un utilisateur //OpenStack// (de type Administrateur) en suivant ce guide : [[https://docs.ovh.com/fr/public-cloud/creer-un-acces-a-horizon/#creer-un-utilisateur-openstack|OVH - Créer un utilisateur OpenStack]] * Se connecter à nouveau à l'instance "bkp-srv" en tant qu'utilisateur "backups" : '' ssh backups@bkp--sinp '' * Se rendre dans le dossier //~/bin/// : ''cd ~/bin'' * Créer le fichier de config //settings.ini// : '' cp settings.defaut.ini settings.ini ; chmod 600 settings.ini '' * Supprimer les lignes des variables qui ne nécessitent pas d'être surchargées dans le fichier ''settings.ini''. * Récupérer les infos nécessaires pour le fichier ''settings.ini'' depuis le fichier ''openrc.sh'' [[https://docs.ovh.com/fr/public-cloud/charger-les-variables-denvironnement-openstack/|téléchargeable de la façon indiquée dans ce guide]]. * Se connecter à l'instance "bkp-srv" en tant qu'utilisateur "admin" : '' ssh admin@bkp--sinp '' * Copier le fichier de cron dans le dossier //cron.d// : '' sudo mv ~/dwl/backup_instance.cron /etc/cron.d/backup_instance '' ===== Notes ===== ==== Sur le script backup_instance.sh ==== * Accéder à l'aide du script avec : '' ./backup_instance.sh -h '' * Le script stocke des logs dans ''/home/backups/tmp/log/bkp_srv_instance.log'' * Le script envoie un email avec le contenu du log à l'email configuré dans la variable ''bsi_email_to'' du fichier ''~/bin/settings.default.ini'' (ou ''settings.ini''). ==== Sur l'utilisation d'OSC ==== * Pour l'utiliser manuellement se connecter en tant que "backups" * Se placer dans le dossier ''~/bin'' avec : ''cd ~/bin'' * Charger les paramètres nécessaires dans les variables d'environnement : '' source settings.default.ini; source settings.ini '' * À tout moment pour voir les variables d'env d'OSC : '' printenv | grep OS_ '' * Pour change de région (= de datacenter) : '' export OS_REGION_NAME="UK1" '' ou '' export OS_REGION_NAME="GRA7" '' * Lister les images : ''openstack image list '' * Voir le détail d'une image : ''openstack image show ''