Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
serveurs:installation:bkp-srv:install-instance-backup-script [2021/05/21 11:02] – [Installation des scripts de backup des instances] jpmilcent | serveurs:installation:bkp-srv:install-instance-backup-script [2024/01/23 16:38] (Version actuelle) – [Installation d'OpenStack Client (OCS)] jpmilcent |
---|
====== Installation du script de transfert des sauvegardes des instances des serveurs ====== | ====== Installation du script de transfert des sauvegardes des instances des serveurs ====== |
| |
===== Mettre en place l'environnement ===== | 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. |
Commencer par mettre en place l'environnement sur l'instance "bkp-srv" : | |
| |
==== Installation d'OpenStack Client (OCS) ==== | ===== Installation d'OpenStack Client (OSC) ===== |
* Se connecter à l'instance "bkp-srv" en tant que "backups" : '' ssh backups@bkp-<region>-sinp '' | * Se connecter à l'instance "bkp-srv" en tant que "backups" : '' ssh backups@bkp-<region>-sinp '' |
* Installer l'environnement virtuel spécifique à openstack client (OCS) : '' virtualenv --python=python3 ocs-env '' | * Installer l'environnement virtuel spécifique à openstack client (OCS) : ''<nowiki> virtualenv --python=python3 osc-env </nowiki>'' |
* Activer l'environnement : ''source ocs-env/bin/activate'' | * Activer l'environnement : ''source osc-env/bin/activate'' |
* S'il s'avère nécessaire de mettre à jour Pip : | * S'il s'avère nécessaire de mettre à jour Pip : |
* Vérifier la présence de Pip : '' pip --version '' | * Vérifier la présence de Pip : ''<nowiki> pip --version </nowiki>'' |
* Mettre à jour Pip vers sa dernière version : '' pip install --upgrade pip '' | * Mettre à jour Pip vers sa dernière version : ''<nowiki> pip install --upgrade pip </nowiki>'' |
* Vérifier la version de Pip: '' pip --version '' | * Vérifier la version de Pip: ''<nowiki> pip --version </nowiki>'' |
* Installer le client OpenStack avec Pip : | * Installer le client OpenStack avec Pip : |
* Installer le client OpenStack : '' pip install python-openstackclient '' | * Installer le client OpenStack : '' pip install python-openstackclient '' |
* Ré-ouvrir un terminal pour activer l'auto-complétion | * Ré-ouvrir un terminal pour activer l'auto-complétion |
| |
==== Accéder à OCS sans activer l'environnement virtuel ==== | ===== Accéder à OSC sans activer l'environnement virtuel ===== |
* Créer un dossier //~/bin// avec : ''mdkir ~/bin '' | * 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 '' | * 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 :<code bash> | * Ajouter au début du fichier avant le commentaire «// # If not running interactively, don't do anything //» le code :<code bash> |
</code> | </code> |
* Recharger l'environnement : '' source ~/.bashrc '' | * Recharger l'environnement : '' source ~/.bashrc '' |
* Ajouter le lien symbolique vers l’exécutable d'OCS : '' ln -s ~/ocs-env/bin/openstack ~/bin/openstack '' | * 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 '' | * Vérifier que l'environnement virtuelle est bien désactivé : '' deactivate '' |
* Tester avec la version d'OCS : ''<nowiki> openstack --version </nowiki>'' | * Tester avec la version d'OSC : ''<nowiki> openstack --version </nowiki>'' |
==== Mise en place du volume "bkp-storage" (Block Storage) ==== | |
| ===== Mise en place du volume "bkp-storage" (Block Storage) ===== |
* Commande un volume Block Storage dans le Public Cloud en le nommant : "bkp-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"]] | * 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"]] |
* Il n'est pas nécessaire de mettre en place de sauvegarde du volume "bkp-storage" car il contient lui même des sauvegardes... | * 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/ '' | * 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 ==== | |
| ===== 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-<region>-sinp '' | * Se connecter à l'instance "bkp-srv" en tant qu'utilisateur "backups" : '' ssh backups@bkp-<region>-sinp '' |
* Créer un dossier //~/bin/// s'il n'existe pas déjà : '' mkdir ~/bin '' | * Créer un dossier //~/bin/// s'il n'existe pas déjà : '' mkdir ~/bin '' |
fi | fi |
</code> | </code> |
* En local sur votre machine placer vous à la racine de votre dépôt //sinp-<region>-srv// : <code bash> cd ~/workspace/sinp-<region>-srv/ </code> | * En local sur votre machine placer vous à la racine de votre dépôt //sinp-<region>-srv// : '' cd ~/workspace/sinp-<region>-srv/ '' |
* À l'aide de //Rsync// uploader le scripts de sauvegarde des instances et les fichiers qui lui sont associé : <code bash> rsync -av bkp-srv/home/admin/bin/ backups@bkp-<region>-sinp:/home/backups/bin/ --dry-run </code> (si tout est ok, supprimer l'option ''<nowiki>--dry-run</nowiki>'') | * À l'aide de //Rsync// uploader le scripts de sauvegarde des instances et les fichiers qui lui sont associé : <code bash> rsync -av bkp-srv/home/backups/bin/ backups@bkp-<region>-sinp:/home/backups/bin/ --dry-run </code> (si tout est ok, supprimer l'option ''<nowiki>--dry-run</nowiki>'') |
* À l'aide de //Rsync// uploader le cron : <code bash>rsync -av bkp-srv/etc/crond.d/ admin@bkp-<region>-sinp:/home/admin/dwl/ --dry-run</code> (si tout est ok, supprimer l'option ''<nowiki>--dry-run</nowiki>'' | * À l'aide de //Rsync// uploader le cron : <code bash>rsync -av bkp-srv/etc/crond.d/ admin@bkp-<region>-sinp:/home/admin/dwl/ --dry-run</code> (si tout est ok, supprimer l'option ''<nowiki>--dry-run</nowiki>'' |
* 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]] | * 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]] |
* 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 à nouveau à l'instance "bkp-srv" en tant qu'utilisateur "backups" : '' ssh backups@bkp-<region>-sinp '' | * Se connecter à nouveau à l'instance "bkp-srv" en tant qu'utilisateur "backups" : '' ssh backups@bkp-<region>-sinp '' |
* Se rendre dans le dossier //~/bin/// : ''cd ~/bin'' | * Se rendre dans le dossier //~/bin/// : ''cd ~/bin'' |
* Se connecter à l'instance "bkp-srv" en tant qu'utilisateur "admin" : '' ssh admin@bkp-<region>-sinp '' | * Se connecter à l'instance "bkp-srv" en tant qu'utilisateur "admin" : '' ssh admin@bkp-<region>-sinp '' |
* Copier le fichier de cron dans le dossier //cron.d// : '' sudo mv ~/dwl/backup_instance.cron /etc/cron.d/backup_instance '' | * 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** : | |
* il stocke des logs dans ''/home/backups/tmp/log/bkp_srv_instance.log'' | |
* il 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''). | |
| |
| ===== 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 <image-id> '' |