Meilleure voie pour migration Yuno 3.8/Stretch/x86_64 vers Yuno 4.x/Buster/R-Pi 4?

https://yunohost.org/en/stretch_buster_migration?q=%2Fstretch_buster_migration

Mon serveur YunoHost

Matériel: VPS acheté en ligne (Gandi)
Version de YunoHost: 3.8.5.9
J’ai accès à mon serveur : En SSH + Par la webadmin + En direct avec une console de restauration
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : non

Description du problème

Salut a tous,

Suite a un demenagement, j’ai deplace mon install Yunohost sur un VPS (chez Gandi). Il est temps maintenant de la repasser en auto-hebergement

J’etais donc passe d’une install Yuno 3.8 Raspberri Pi 3 vers la meme chose mais sur x86_64. J’aimerais maintenant passer sur Raspberry Pi 4 et donc migrer sur Buster dans la foulee.

La maniere donc je voie les choses est la suivante:

  1. Mettre a jour tous les paquets systemes en 3.8.5.9 (deja fait, je n’ai pas de mise a jour a faire).
  2. Migrer vers Yunohost 4.x, toujours sur le VPS, puis mettre a jour toutes les apps (je suis actuellement bloque sur certaines, par exemple Nextcloud, etant toujours sur 3.8).
  3. Faire un backup via Yunohost
  4. Installer Buster sur le R-Pi 4, puis Yunohost (ou tout d’un coup via les images Yunohost preconstruites).
  5. Restaurer le backup depuis la postinstall

J’avais plusieurs questions a ce sujet:

  1. Quelqu’un peut confirmer que c’est la bonne methode?
  2. A l’heure actuelle, je n’ai pas dans le VPS la possibilite de migrer vers Yunohost 4.x, la migration ne semble pas disponible. En ligne de commmande, Yunohost m’indique que la migration a ete ignoree/skipped, ce dont je me souviens pas. Quelle est donc la methode pour la faire apparaitre a nouveau/la rendre disponible?

Merci a tous pour votre aide et a l’equipe pour ce superbe morceau qu’est Yunohost!

Migration non disponible via l’UI:

Migration “ignoree” via la ligne de commande:

C’est peut-être du à une précédente restauration après qu’on ai sorti la migration … lors de la postinstall (sous Stretch), Yunohost commence par skip toutes les migrations en attente car normalement elles n’ont pas de sens puisque le système est frais … mais la migration Buster est un cas particulier (c’est un bug qu’il faudrait résoudre en stretch mais un peu la flemme car les gens ne sont plus censés faire d’install en stretch depuis Juin/juillet … même si bon je sais qu’il y a certaine situation où ça se discute)

Bref, pour remettre la migration en disponible, tu peux éditer /etc/yunohost/migrations.yaml, par exemple avec nano, et simplement enlever complètement la ligne qui parle de la migration 15, yunohost aura l’impression que c’est une toute nouvelle migration qu’il faut donc appliquer.

Oui ça semble être la bonne méthode, il faut bien idéalement d’abord migrer vers la 4.x puis ensuite faire un backup/restore vers le nouveau système. On pourrait aussi imaginer d’abord passer sur le nouveau système (toujours en 3.x) puis faire la montée de version vers 4.x sur le nouveau système, ça devrait être équivalent. Ce qui serait très risqué c’est de faire d’un seul coup le backup/restore de 3.8 sur le nouveau système en 4.1 (théoriquement ça pourrait marcher, mais changer à la fois de version majeure de debian et d’architecture, ça pique beaucoup)

Note qu’il n’est pas non plus complètement impossible d’avoir des incompatibilités due au fait d’être sur ARM … mais ça ça dépends beaucoup des apps exacte que tu as. Pour Nextcloud c’est bon : c’est bien compatible ARM (tout comme la majeure partie des apps).

1 Like

Salut Aleks et merci pour ta reponse rapide!

Merci pour l’explication. Aucun souci pour moi pour le bug, je comprend tout a fait que cela ne soit plus vraiment supporte. Une explication comme la tienne me satisfait tres bien!

Ok, super je vais regarder alors pour la reactiver.

Ah voila une info tres interessante, c’est exactement ce que je cherchais. Je ne l’ai pas trouvee dans la doc donc si c’est OK pour toi je vais regarder pour faire une contrib qui mentionne cela soit dans la page de migration, soit dans la page de restoration via post-install

Ok, tres bonne info encore, merci! Je n’avais pas liste mes apps, je n’en ai que deux, Nextcloud et Dokuwiki pour le moment.

Je vous tiens au courant en tout cas!

Resalut,

Alors voila ce soir j’ai essaye de migrer apres avoir active la migration dans /etc/yunohost/migrations.yaml.

Cela n’a pas fonctionne car il essaie de patcher /etc/apt/sources.list:

$ sudo yunohost tools migrations migrate 0015_migrate_to_buster --accept-disclaimer
Info: Running migration 0015_migrate_to_buster...
Error: Migration 0015_migrate_to_buster did not complete, aborting. Error: File does not exist: '/etc/apt/sources.list'
Info: The operation 'Run migrations' could not be completed. Please share the full log of this operation using the command 'yunohost log display 20210401-205215-tools_migrations_migrate_forward --share' to get help

Le log complet:

$ sudo yunohost log display 20210401-205215-tools_migrations_migrate_forward
description: Run migrations
log_path: /var/log/yunohost/categories/operation/20210401-205215-tools_migrations_migrate_forward.log
logs: 
  - 2021-04-01 22:52:15,607: INFO - Running migration 0015_migrate_to_buster...
  - 2021-04-01 22:52:15,663: ERROR - Migration 0015_migrate_to_buster did not complete, aborting. Error: File does not exist: '/etc/apt/sources.list'
  - Traceback (most recent call last):
  -   File "/usr/lib/moulinette/yunohost/tools.py", line 895, in tools_migrations_migrate
  -     migration.run()
  -   File "/usr/lib/moulinette/yunohost/data_migrations/0015_migrate_to_buster.py", line 28, in run
  -     self.check_assertions()
  -   File "/usr/lib/moulinette/yunohost/data_migrations/0015_migrate_to_buster.py", line 145, in check_assertions
  -     if " buster " not in read_file("/etc/apt/sources.list"):
  -   File "/usr/lib/python2.7/dist-packages/moulinette/utils/filesystem.py", line 32, in read_file
  -     raise MoulinetteError("file_not_exist", path=file_path)
  - MoulinetteError: File does not exist: '/etc/apt/sources.list'
metadata: 
  ended_at: 2021-04-01 22:52:15
  error: Migration 0015_migrate_to_buster did not complete, aborting. Error: File does not exist: '/etc/apt/sources.list'
  operation: tools_migrations_migrate_forward
  started_at: 2021-04-01 22:52:15
  success: False
  yunohost_version: 3.8.5.9
metadata_path: /var/log/yunohost/categories/operation/20210401-205215-tools_migrations_migrate_forward.yml
name: 20210401-205215-tools_migrations_migrate_forward

En fait, sur ma machine (image Debian de Gandi), il n’y a pas de fichier /etc/apt/sources.list, tout est contenu dans plusieurs fichiers sous /etc/apt/sources.list.d:

$ tree /etc/apt/sources.list.d/
/etc/apt/sources.list.d/
├── debian-security.list
├── debian-stretch-gandi.list
├── debian-stretch.list
├── debian-update.list
├── extra_php_version.list
└── yunohost.list

0 directories, 6 files

Au vu du contenu de /usr/lib/moulinette/yunohost/data_migrations/0015_migrate_to_buster.py, j’ai donc cree le fichier avec une ligne de commentaire vide:

$ cat /etc/apt/sources.list
#empty file to satisfy yunohost migration

Et j’ai relance la migration mais elle a echoue car certains paquets n’ont pu se mettre a jour. Je pense que c’est du a:

Info: + The following packages will be DOWNGRADED:
Warning: E: Packages were downgraded and -y was used without --allow-downgrades.
Info: +   libssl1.1

J’ai mis le log complet sous https://paste.yunohost.org/raw/ifaleloyej. Il y a l’air d’avoir une mention de libssl1.1 dans YunoHost 4.0 (Buster) release / Sortie de YunoHost 4.0 (Buster) - #188 by Aleks mais cela ne correspond pas a mon probleme…

Est-ce que qqn aurait une idee?

Merci bien!

Essaie avant de faire:

apt install libssl1.1 --allow-downgrades

Puis relance la migration

Super, merci j’ai fait cela et relance la migration.

Il me dit que mon systeme n’est pas a jour et qu’il y a 500 paquets a metttre a jour mais c’est pcq les depots sont deja en buster et que la verif est faite sur /etc/apt/sources.list (qui est vide/commente, cf plus haut).

La verif est faite justement pour eviter ce cas de figure (migration commencee et ratee) donc je lui met le mot-clef buster (avec les espaces) dedans pour que la verif passe, je relance et vous tiens au courant.

Ok, j’ai rencontre le probleme d’expiration de la clef deb.sury.org qui empechait la mise a jour des paquets:

Info: Fetching available upgrades for system packages...
Warning: W: GPG error: https://packages.sury.org/php buster InRelease: The following signatures were invalid: EXPKEYSIG B188E2B695BD4743 DEB.SURY.ORG Automatic Signing Key <deb@sury.org>
Warning: W: The repository 'https://packages.sury.org/php buster InRelease' is not signed.

Confirme par apt-key list:

/etc/apt/trusted.gpg.d/extra_php_version.gpg
--------------------------------------------
pub   rsa3072 2019-03-18 [SC] [expired: 2021-03-17]
      1505 8500 A023 5D97 F5D1  0063 B188 E2B6 95BD 4743
uid           [ expired] DEB.SURY.ORG Automatic Signing Key <deb@sury.org>

J’ai suivi les instructions sur Expired Debian key issue · Issue #1575 · oerdnj/deb.sury.org · GitHub pour retirer la clef et la reimporter et c’est bon, la migration est en cours…

Edit: je voie aussi que Aleks en parlait sur Echec de la migration vers Buster - #6 by Aleks

Voila, c’est bon la MAJ systeme s’est bien passee et Nextcloud+Dokuwiki sont maintenant a la derniere version (c’etait bloque par le passage a la v4).

Un grand bravo a l’equipe Yunohost pour votre travail remarquable, c’est vraiment impressionant de voir a quel point la plateforme est aboutie!

1 Like

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.