220 lines
6.1 KiB
Markdown
220 lines
6.1 KiB
Markdown
# Procédure pour la mise à jour vers Debian 12 et ScoDoc 9.6
|
|
|
|
Cette page documente la mise à jour d'un serveur ScoDoc 9.4 ou 9.5 tournant sous
|
|
Linux Debian 11 vers la version suivante: ScoDoc 9.6 sous Debian 12.
|
|
|
|
On commence par mettre à jour normalement le système Debian, puis on change la
|
|
version de la base de données postgresql puis on met à jour ScoDoc.
|
|
|
|
Si vous souhaitez installer ScoDoc 9.6 sans partir d'un serveur 9.5,
|
|
[voir la page d'installation](GuideInstallDebian12.md)
|
|
|
|
Tout compris, la mise à jour d'un serveur typique prend environ 20 à 30 minutes
|
|
et ne demande aucune compétence particulière, autre que de suivre
|
|
scrupuleusement les instructions ci-dessous, sans oublier d'étape.
|
|
|
|
## Upgrade Debian 11 vers Debian 12
|
|
|
|
La documentation officielle est là:
|
|
[DebianUpgrade](https://wiki.debian.org/DebianUpgrade). Elle couvre tous les
|
|
cas, mais en général notre serveur ScoDoc est plus simple: résumé ci-dessous
|
|
|
|
### Sauvegarder
|
|
|
|
Avant tout, sauvegarder vos données et l'ensemble de votre serveur. Vérifiez que
|
|
vous avez assez d'espace disque disponible (par exemple avec la commande `df -h`).
|
|
|
|
Prévenez les utilisateurs et arrêtez le service: `systemctl stop scodoc9`
|
|
|
|
### Mettre à jour Debian
|
|
|
|
Dans la suite, on suppose que vous avez un shell root. Sinon, utilisez `sudo`.
|
|
|
|
#### Vérifier qu'on est à jour
|
|
|
|
```bash
|
|
apt-get update
|
|
apt-get upgrade
|
|
apt-get full-upgrade
|
|
```
|
|
|
|
#### Modifier les sources de mise à jour
|
|
|
|
Si vous savez le faire, éditer le fichier `/etc/apt/sources.list` (par exemple
|
|
avec la commande `nano /etc/apt/sources.list`) et remplacer le mot `bullseye`par
|
|
`bookworm`. Vous pouvez aussi utiliser `sed`
|
|
|
|
```bash
|
|
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
|
|
```
|
|
|
|
Bien vérifier le résultat. Sinon, il peut être plus simple de reprendre ce contenu:
|
|
|
|
```txt
|
|
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
|
|
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
|
|
|
|
deb http://security.debian.org/debian-security bookworm-security main
|
|
deb-src http://security.debian.org/debian-security bookworm-security main
|
|
|
|
deb http://deb.debian.org/debian/ bookworm-updates main
|
|
deb-src http://deb.debian.org/debian/ bookworm-updates main
|
|
```
|
|
|
|
#### Mettre à jour
|
|
|
|
```bash
|
|
/bin/rm /etc/apt/sources.list.d/scodoc.list
|
|
apt-get clean
|
|
apt-get update
|
|
```
|
|
|
|
Les deux commandes suivantes sont longues, surtout ne pas les interrompre.
|
|
Répondre "oui" (ou la réponse par défaut) aux diverses question, ou dire que
|
|
vous conservez les versions locales modifiées de vos fichiers de configuration
|
|
(lorsqu'un texte long s'affiche, taper 'q' puis "entrée"...).
|
|
|
|
```bash
|
|
apt-get upgrade
|
|
#
|
|
|
|
# Puis:
|
|
apt-get full-upgrade
|
|
```
|
|
|
|
Un petit nettoyage:
|
|
|
|
```bash
|
|
apt-get autoremove
|
|
```
|
|
|
|
Et un redémarrage
|
|
|
|
```bash
|
|
shutdown -r now
|
|
```
|
|
|
|
Après reconnexion, vous avez un serveur Debian 12. Reste à s'occuper de la base
|
|
de données et de ScoDoc. D'abord, s'assurer que le service n'a pas redémarré:
|
|
|
|
```bash
|
|
systemctl status scodoc9
|
|
```
|
|
|
|
et si besoin le stopper avec :
|
|
|
|
```bash
|
|
systemctl stop scodoc9
|
|
```
|
|
|
|
## En cas de problème avec proxmox
|
|
|
|
Pour l'instant on ne nous a pas signalé de problèmes, mais au cas où ce lien
|
|
peut servir: [Debian 12 et proxmox](https://www.abyssproject.net/2023/07/retex-sur-mes-upgrades-vers-debian-12-et-proxmox-ve-8)
|
|
|
|
## Upgrade Postgresql
|
|
|
|
Debian 12 est livré avec Postgresql 15, tandis que l'installation précédente
|
|
tournait sous Postgresql 13. Il est donc nécessaire de migrer les données en
|
|
base vers la nouvelle version.
|
|
Procédure inspirée de
|
|
[ce tuto en français](https://wiki.fiat-tux.fr/books/administration-syst%C3%A8mes/page/migration-d%E2%80%99une-version-majeure-de-postgresql-%C3%A0-une-autre)
|
|
|
|
Toujours dans un shell root, copier/coller les commandes suivantes:
|
|
|
|
```bash
|
|
# Arrêter et mettre à jour
|
|
service postgresql stop
|
|
pg_dropcluster --stop 15 main
|
|
pg_upgradecluster -m upgrade 13 main
|
|
systemctl start postgresql
|
|
# Vérifier l'etat du service
|
|
systemctl status postgresql
|
|
```
|
|
|
|
Puis
|
|
|
|
```bash
|
|
/bin/su -c "/usr/lib/postgresql/15/bin/vacuumdb --all --analyze-in-stages" postgres
|
|
|
|
pg_dropcluster 13 main --stop
|
|
apt-get autoremove --purge postgresql-13 postgresql-client-13
|
|
```
|
|
|
|
Soyez attentif et vérifier que les commandes précédentes se sont exécutées sans erreur.
|
|
|
|
## Passage de ScoDoc 9.5 (ou 9.4) à 9.6
|
|
|
|
### Modification des sources de paquets Debian
|
|
|
|
- Supprimer l'ancien fichier:
|
|
|
|
```bash
|
|
/bin/rm -f /etc/apt/sources.list.d/scodoc*
|
|
```
|
|
|
|
- Ajouter le dépot scodoc: copier le fichier <a href="/attachments/scodoc.list"
|
|
download>scodoc.list</a> dans `/etc/apt/sources.list.d/` à l'aide de la
|
|
commande
|
|
|
|
```bash
|
|
wget --directory-prefix=/etc/apt/sources.list.d/ https://scodoc.org/attachments/scodoc.list
|
|
```
|
|
|
|
ou si vous préférez l'éditer pour qu'il contienne juste cette ligne:
|
|
|
|
```text
|
|
# contenu du fichier /etc/apt/sources.list.d/scodoc.list
|
|
deb http://scodoc.org/deb/bookworm bookworm main
|
|
```
|
|
|
|
|
|
|
|
### Installation de la clé
|
|
|
|
L'ancienne clé crypto qui authentifie scodoc est toujours valide, mais il faut
|
|
l'installer différemment. Comme root, lancer:
|
|
|
|
```bash
|
|
apt-key export BBDA4CF7 | gpg --dearmour -o /etc/apt/trusted.gpg.d/scodoc.gpg
|
|
```
|
|
|
|
### Mise à jour du paquet scodoc9
|
|
|
|
```bash
|
|
apt update && apt upgrade
|
|
```
|
|
|
|
devrait installer `scodoc9.6.x` (cette première install est un peu longue, il
|
|
faut en effet charger et configurer de nombreux modules python).
|
|
|
|
### Migration des absences vers les assiduités
|
|
|
|
Le nouveau module de gestion des assiduité (absences/présences/justificatifs)
|
|
permet d'importer les anciennes "absences" (et justificatifs). Pour cela, lancer
|
|
les commandes suivantes:
|
|
|
|
```bash
|
|
systemctl stop scodoc9 # le service DOIT etre stoppé !
|
|
/bin/su scodoc
|
|
#
|
|
cd /opt/scodoc
|
|
source venv/bin/activate
|
|
flask migrate-abs-to-assiduites
|
|
```
|
|
|
|
Pour plus de détails et paramétrages (plages horaires, ...), voir
|
|
[la documentation sur la migration des absences](AssiduitesMigration.md).
|
|
|
|
Le traitement est assez long et peut prendre plusieurs minutes,
|
|
suivant le nombre d'absences et la vitesse de votre serveur.
|
|
|
|
### Démarrage du service
|
|
|
|
Comme d'habitude, en tant que `root`: (faire `exit`si vous êtes resté dans le
|
|
shell scodoc précédent):
|
|
|
|
```bash
|
|
systemctl start scodoc9
|
|
```
|