====== Gestion de Yunohost ======
Cette page décrit des astuces et des applications utilitaires facilitant la gestion administrative de ma machine (VPS ou Raspberry Pi) et du serveur Yunohost.
===== Emplacement des applications de Yunohost ======
Les applications installées sont situées dans /var/www :
{{:auto-heber:raspberrypi_yunohost_jl-yunohost-gestion-var-www.png?600|}}
Initialement, seuls les répertoires 'html' et 'well-known' sont présents.
===== Midnight Commander pour gérer les fichiers =====
:-| Je fais tenter de 'merger' ce contenu avec celui de la page 'mc' de Daniel
J'installe cet outil (appelé dorénavant 'mc') sur mon poste de travail et sur mon serveur (VPS ou Raspberry Pi) afin de faciliter la gestions des fichiers :
* Références:
* https://www.linode.com/docs/tools-reference/tools/how-to-install-midnight-commander/
* https://linuq.org/auto-heber/mc
* On l'installe localement avec cette commande dans un Terminal :
sudo apt-get install mc
* Lancer l'outil (et l'ajouter au Tableau de bord):
mc
Pour l'installation de cet outil sur mon serveur Yunohost :
* Connecté en 'admin':
sudo apt-get install mc
* Lancer l'outil:
mc
* Aller dans /var/www:
{{:auto-heber:raspberrypi_yunohost_jl-yunohost-mc-var-www.png?600|}}
===== Sauvegarde manuelle de Yunohost sur VPS ====
* Dans l'interface utilisateur en administratreur, allez dans le 'Sauvegarde'.
* On voit que les sauvegardes créent le répertoire '/home/yunohost.backup/' et y placent les fichiers d'archives locales.
* Cliquez sur 'Archives locales', puis 'Nouvelle sauvegarde'
* Je garde les paramètres par défaut (tout sélectionné)
* Cliquez sur 'Sauvegarder'
* Après quelques secondes, l'archive locale est terminée et un fichier est ajouté (ex: /home/yunohost.backup/archives/20190310-164710.tar.gz)
* Cliquez sur l'archive pour voir son contenu :
{{ :auto-heber:vps-ovh-jl-yunohost-sauvegarde-manu-1.png?600 |}}
Avec mc, vérifiez l'emplacement des archives locales :
{{ :auto-heber:vps-ovh-jl-yunohost-sauvegarde-manu-2.png?400 |}}
===== Sauvegarde programmée de Yunohost sur VPS ====
Voici une contribution de François afin d'effectuer une copie journalière de son installation de Yunohost sur VPS vers un ordinateur local :
* Source : [[https://linuq.org/auto-heber/retours-experoences?rev=1552106452#sauvegarde|Sauvegarde de Yunohost]]
* Références :
* [[https://www.timeanddate.com/worldclock/converted.html?p1=250&p2=0|UTC Time Zone]] (1 h UTC = 20 h Québec)
* [[https://linux.die.net/man/1/rsync|rsync man page]]
Une façon simple de faire un backup est d'utiliser rsync depuis une autre machine. Mettre les deux scripts dans cron avec le délai de sauvegarde désiré. Pour ma part, c'est une fois par jour à 1h UTC.
* Sur la machine de sauvegarde:
rsync -vau utilisateur@adresse:/home/yunohost.backup/archives/ /repertoire-de-sauvegarde-local
* Dans cron:
0 1 * * * bash /root/script_backup_distant.sh
* Sur le serveur:
rm /home/yunohost.backup/archives/*
yunohost backup create
* Dans cron:
0 0 * * * bash /root/script_backup_serveur.sh
==== Sauvegarder programmée : démonstration de mise en place ====
Pour les personnes moins expérimentées, voici un guide expliquant comment procéder pour mettre en place la sauvegarde programmée de Yunohost sur VPS.
**D'abord, sur le serveur (VPS)...**
De votre poste de travail local, vous connecter avec votre compte poweruser en SSH (via le port configuré précédemment):
ssh poweruser@vps123456.vps.ovh.ca -p nn
(remplacez 'poweruser' par votre compte avec accès sudo, 123456 par votre nom de VPS et nn par le port SSH configuré précédemment)
Maintenant connecté, élevez vos privilèges en 'root':
sudo su
(entrer le mot de passe du compte poweruser)
Créez le script sur le serveur (sera dans /root) :
nano script_backup_serveur.sh
Saisir son contenu :
rm /home/yunohost.backup/archives/*
yunohost backup create
Sauvegarder et quitter nano (Ctrl-O, Ctrl-X)
(S'assurer que la propriété 'Autoriser l'exécution du fichier comme un programme' du script est activée par **chmod +x script_backup_server.sh**)
Ajoutez la tâche dans le cron :
crontab -e
Choisir l'éditeur nano (choix 1)
Saisir la commande :
0 0 * * * bash /root/script_backup_serveur.sh
Sauvegarder et quitter le cron (Ctrl-O, Ctrl-X)
Message : //'crontab: installing new crontab'//
**Maintenant sur la machine de sauvegarde (ex: votre poste de travail local)...**
Passez en //root// :
sudo su
(entrer le mot de passe de votre compte //poweruser// local)
Créez le script sur le poste local (sera dans /root) :
nano script_backup_distant.sh
Saisir son contenu :
rsync -vau poweruser@vps123456:/home/yunohost.backup/archives/ /home/jean/Documents/yunohost_vps_ovh_backups
(remplacez 'poweruser' par votre compte avec accès //sudo//, 123456 par votre nom de VPS et 'jean' par votre compte local)
Sauvegarder et quitter nano (Ctrl-O, Ctrl-X)
(S'assurer que la propriété 'Autoriser l'exécution du fichier comme un programme' du script est activée par **chmod +x script_backup_distant.sh**)
Ajoutez la tâche dans le cron :
crontab -e
Choisir l'éditeur nano (choix 1)
Saisir la commande :
0 1 * * * bash /root/script_backup_distant.sh
Sauvegarder et quitter le cron (Ctrl-O, Ctrl-X)
Message : //'crontab: installing new crontab'//
**Vérification du script serveur :** Pour tester immédiatement le script serveur, modifier le temps programmé de son cron par l'heure actuelle et les minutes actuelles + 2 min
D'abord, vérifier l'heure du serveur :
date +"%H:%M"
(message, par ex: 13:25)
(je programme le cron pour 13 h 27)
27 13 * * * bash /root/script_backup_serveur.sh
Je confirme le fonctionnement du script avec mc :
{{ :auto-heber:vps-ovh-jl-yunohost-sauvegarde-progr-1.png?400 |}}
ou au terminal en 'root':
cd /home/yunohost.backup/archives
ls -la
qui devrait afficher un contenu similaire à ceci :
root@mondomaine:/home/yunohost.backup/archives# ls -al
total 9928
drwxr-x--- 2 admin root 4096 Mar 10 13:27 .
drwxr-xr-x 4 root root 4096 Mar 10 12:47 ..
-rw-r--r-- 1 root root 1533 Mar 10 13:27 20190310-172702.info.json
-rw-r--r-- 1 root root 10153504 Mar 10 13:27 20190310-172702.tar.gz
root@mondomaine:/home/yunohost.backup/archives#
**Vérification du script local :**
J'ai aussi modifié (en root) les droits du répertoire 'archives' afin que rsync et l'utilisateur //poweruser// aient accès à son contenu (autrement message //'failed: Permission denied (13)'//) :
cd /home/yunohost.backup/
chmod 777 archives
Je vérifie les accès en exécutant immédiatement la commande au terminal (permet d'ajuster jusqu'à ce qu'elle fonctionne bien) :
rsync -vau poweruser@999.99.999.999:/home/yunohost.backup/archives/ /home/jean/Documents/yunohost_vps_ovh_backups
(saisir le mot de passe du //poweruser//)
:!: Ma commande rsync ne fonctionnant pas avec le port SSH nn (autre que 22), plutôt que de remettre le port 22 par défaut (un paramètre à fournir?), je fais le compromis de ne laisser le port SSH 22 que pendant la sauvegarde.
Message :
receiving incremental file list
./
20190310-172702.info.json
20190310-172702.tar.gz
sent 65 bytes received 10,157,705 bytes 655,340.00 bytes/sec
total size is 10,155,037 speedup is 1.00
Je vérifie dans mon répertoire local et les 2 fichiers y sont.
(Notez que rsync ne copie que les fichiers qui ont changé. Je supprime donc les archives locales pour la suite.)
Je teste immédiatement le script local :
./script_backup_distant.sh
(saisir le mot de passe du //poweruser//)
(Je supprime à nouveau les archives locales pour la suite.)
Modifier le temps programmé de son cron par l'heure actuelle et les minutes actuelles + 2 min
Dans la barre des tâches, mon poste m'indique qu'il est 13 h 50.
(Je programme le cron pour 13 h 52)
52 13 * * * bash /root/script_backup_distant.sh
Je confirme le fonctionnement du script :
:!: Le script ne s'exécute pas. J'ai essayé de passer en paramètre un fichier contenant le mot de passe, mais message d'erreur //'The --password-file option may only be used when accessing an rsync daemon.
'//. Selon cette page [[https://superuser.com/questions/325715/rsync-cron-job-with-a-password|rsync cron job with a password ?]], il serait préférable que...//look at setting up public keys between the servers so they 'trust' each other and passwords are not needed.//
Il fonctionne si on utilise 'root' pour exécuter la commande, mais faille de sécurité...
À suivre, **en attendant j'exécuterai le script local manuellement sur une base régulière**.
===== Grsync, outil graphique de rsync =====
À explorer :
* https://www.linux.com/blog/making-backups-grsync
* https://freedompenguin.com/articles/how-to/making-backups-with-grsync/