Mise à jour vers Debian 11, deuxième serveur

Suite à la mise à jour de mon premier serveur et de la résolution des différents problèmes, j’attaque la migration de mon premier serveur.

Mon serveur YunoHost

Matériel: KS-3 chez Kimsufi
Version de YunoHost: 4.4.2.13
J’ai accès à mon serveur : En SSH
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : J’ai tenté l’upgrade vers Debian 11.4

Description du problème

Je réitère mes félicitations et mes remerciements à l’équipe de Yunohost. J’ai découvert quelques trucs supers en corrigeant les problèmes de ma première migration vers Debian 11. Il y a tellement de choses bien faites qui aident énormément pour résoudre les problèmes. Bravo à vous!:sparkling_heart:

Je vais essayer de résoudre mes problèmes moi-même mais ça m’aide à structurer les choses d’écrire un post. Et puis, ça documente pour d’autres qui auraient les mêmes soucis.

Voici les logs complets : https://paste.yunohost.org/raw/jokivopufe

Extrait:

2022-09-19 06:38:09,838: DEBUG - update-alternatives: warning: forcing reinstallation of alternative /etc/mysql/mariadb.cnf because link group my.cnf is broken
2022-09-19 06:38:10,076: INFO - + Processing triggers for mariadb-server-10.3 (1:10.3.36-0+deb10u1) ...
2022-09-19 06:38:10,778: WARNING - postinst called with unknown argument 'triggered'
2022-09-19 06:38:11,175: WARNING - dpkg: error processing package mariadb-server-10.3 (--configure):
2022-09-19 06:38:11,177: WARNING -  installed mariadb-server-10.3 package post-installation script subprocess returned error exit status 1
2022-09-19 06:38:11,793: WARNING - Errors were encountered while processing:
2022-09-19 06:38:11,796: WARNING -  mariadb-server-10.3
2022-09-19 06:38:12,449: WARNING - E: Sub-process /usr/bin/dpkg returned an error code (1)
2022-09-19 06:38:13,452: ERROR - La migration 0021_migrate_to_bullseye a échoué avec l'exception Failed to reinstall mariadb-common ? : annulation
Traceback (most recent call last):
  File "/usr/lib/moulinette/yunohost/tools.py", line 944, in tools_migrations_run
    migration.run()
  File "/usr/lib/moulinette/yunohost/data_migrations/0021_migrate_to_bullseye.py", line 174, in run
    raise YunohostError("Failed to reinstall mariadb-common ?", raw_msg=True)
yunohost.utils.error.YunohostError: Failed to reinstall mariadb-common ?

Alooooors. Où est-ce que ça coince ?

Tout d’abord, on peut vérifier que les sources ont bien été changées.

$ cat /etc/apt/sources.list.d/yunohost.list 
deb http://forge.yunohost.org/debian/ bullseye stable

Ça c’est ok. Est-ce qu’il y a des conflits ?

$ sudo dpkg-query -s yunohost | grep '^Conflicts:'
Conflicts: apache2, bind9

Ça semble être les “conflits cohérents” dont on a parlé dans l’autre post. Pas à se tracasser donc.

État des lieux des migrations en cours :

$ sudo yunohost tools migrations state
migrations: 
  0015_migrate_to_buster: skipped
  0016_php70_to_php73_pools: skipped
  0017_postgresql_9p6_to_11: skipped
  0018_xtable_to_nftable: skipped
  0019_extend_permissions_features: done
  0020_ssh_sftp_permissions: done

$ sudo yunohost tools migrations list
migrations: 
  0: 
    description: Upgrade the system to Debian Buster and YunoHost 4.x
    disclaimer: None
    id: 0015_migrate_to_buster
    mode: manual
    name: migrate_to_buster
    number: 15
    state: skipped
  1: 
    description: Migrate php7.0-fpm 'pool' conf files to php7.3
    disclaimer: None
    id: 0016_php70_to_php73_pools
    mode: auto
    name: php70_to_php73_pools
    number: 16
    state: skipped
  2: 
    description: Migrate databases from PostgreSQL 9.6 to 11
    disclaimer: None
    id: 0017_postgresql_9p6_to_11
    mode: auto
    name: postgresql_9p6_to_11
    number: 17
    state: skipped
  3: 
    description: Migrate old network traffic rules to the new nftable system
    disclaimer: None
    id: 0018_xtable_to_nftable
    mode: auto
    name: xtable_to_nftable
    number: 18
    state: skipped
  4: 
    description: Extend/rework the app permission management system
    disclaimer: None
    id: 0019_extend_permissions_features
    mode: auto
    name: extend_permissions_features
    number: 19
    state: done
  5: 
    description: Add SSH and SFTP permissions support
    disclaimer: None
    id: 0020_ssh_sftp_permissions
    mode: auto
    name: ssh_sftp_permissions
    number: 20
    state: done
  6: 
    description: Upgrade the system to Debian Bullseye and YunoHost 11.x
    disclaimer: N.B.: This migration has been tested by the community over the last few months but has only been declared stable recently. If your server hosts critical services and if you are not too confident with debugging possible issues, we recommend you to wait a little bit more while we gather more feedback and polish things up. If on the other hand you are relatively confident with debugging small issues that may arise, you are encouraged to run this migration ;)! You can read about remaining known issues and feedback from the community here: https://forum.yunohost.org/t/20590

Please note that this migration is a delicate operation. The YunoHost team did its best to review and test it, but the migration might still break parts of the system or its apps.

Therefore, it is recommended to:
    - Perform a backup of any critical data or app. More info on https://yunohost.org/backup;
    - Be patient after launching the migration: Depending on your Internet connection and hardware, it might take up to a few hours for everything to upgrade.
    id: 0021_migrate_to_bullseye
    mode: manual
    name: migrate_to_bullseye
    number: 21
    state: pending

On tente un apt update et un apt full-upgrade pour voir ce qu’il en ressort :

$ sudo apt update
Hit:1 http://forge.yunohost.org/debian bullseye InRelease
Hit:2 http://deb.debian.org/debian bullseye InRelease                                                                
Hit:3 http://security.debian.org/debian-security bullseye-security InRelease                                         
Hit:4 http://deb.debian.org/debian bullseye-updates InRelease                                                        
Hit:5 https://packages.sury.org/php bullseye InRelease                  
Reading package lists... Done                     
Building dependency tree       
Reading state information... Done
669 packages can be upgraded. Run 'apt list --upgradable' to see them.

$ sudo apt full-upgrade
(...)

Observation: Lors de l’upgrade de mon autre serveur, les DNS ont sauté et ça a bien coincé l’upgrade. Ici, ça n’est pas le cas! \o/

Après ça, j’ai supprimé les paquets qui ne sont plus utiles :

$ sudo apt autoremove

Ensuite, je me suis reconnecté sur la webadmin et j’ai pu mettre à jour quelques trucs :

guile-2.2-libs/stable 2.2.7+1-6 amd64 [upgradable from: 2.2.4+1-2+deb10u1]
moulinette/stable 11.0.9 all [upgradable from: 4.4.1]
ssowat/stable 11.0.9 all [upgradable from: 4.4.1]
yunohost-admin/stable 11.0.10 all [upgradable from: 4.4.1]
yunohost/stable 11.0.9.14 all [upgradable from: 4.4.2.14]

La webadmin m’a dit que la migration vers “Debian Bullseye et YunoHost 11.x” n’avait pas été faite. Je l’ai relancée directement depuis la webadmin et ça s’est bien passé.

Ensuite, j’ai pu mettre à jours les quelques applications sur ce serveur (wordpress et plusieurs webapp). J’ai eu encore quelques migrations à faire

24. Réparer l'application Python après la migration Bullseye
23. Migration des bases de données de PostgreSQL 11 vers 13
22. Migration des fichiers de configuration php7.3-fpm 'pool' vers php7.4 

Mais tout s’est déroulé parfaitement.

(Un peu plus tard…)

Bon, j’ai quand même des soucis. Je n’arrive pas à me connecter à mes webapps.

J’ai pu résoudre les différents soucis, il me restait à écraser la configuration de certains fichiers en suivant les conseils donnés par la page de diagnostic.

# yunohost tools regen-conf slapd --force
# yunohost tools regen-conf ssh --force
# yunohost tools regen-conf fail2ban --force
# yunohost tools regen-conf dnsmasq --force

Il me reste encore un soucis avec Shaarli qui ne me laisse pas me connecter. (Trop de tentatives, banni). J’ai supprimé le fichier qui liste les ip bannie (qui était vide) et ça n’a pas réglé le problème.

J’ai vu sur un autre post que @Lapineige avait réglé le soucis mais manifestement, le problème est revenu. (Ou est resté depuis plusieurs versions ?)

Encore à creuser.

Tu aurais le lien du post ? Je ne me rappelle plus :sweat_smile:

J’ai encore un soucis avec Borg. J’ai fait un post dédié : [Borg] can't open file '/opt/borg-env/bin/borg'


@Lapineige : Voici le post que j’avais trouvé à propos de Shaarli : Banni de Shaarli suite à mise à jour

J’ai regardé le fichier ipbans.php. Il ne mentionnait pas d’ip bannie.

$ sudo cat /var/www/shaarli/data/ipbans.php
<?php
$GLOBALS['IPBANS']=array (
  'FAILURES' => 
  array (
  ),
);

Le log ne mentionne pas grand chose d’intéressant (dernier login il y a assez longtemps en fait…).

Je reste avec cette erreur :

Ok, alors je n’ai aucune idée d’où ça peut venir…

Ça ne fonctionne pas quelque soit le navigateur, l’IP de connexion ?

Sait-on jamais, as-tu essayé de redémarrer le serveur ou au moins le service php concerné ? On sait jamais :tm:

J’ai essayé depuis mobile (en 4G), même soucis. Donc ça ne vient pas de l’ip de connexion.

J’ai redémarré le service php7.4-fpm :

$ systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-09-19 08:27:36 UTC; 3 days ago
       Docs: man:php-fpm7.4(8)
    Process: 6081 ExecReload=/bin/kill -USR2 $MAINPID (code=exited, status=0/SUCCESS)
   Main PID: 21717
     Status: "Processes active: 0, idle: 3, Requests: 73134, slow: 0, Traffic: 0.1req/sec"
      Tasks: 4 (limit: 4676)
     Memory: 136.9M
     CGroup: /system.slice/php7.4-fpm.service
             ├─ 6144 php-fpm: pool www
             ├─ 6147 php-fpm: pool www
             ├─17969 php-fpm: pool shaarli
             └─21717 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)

$ sudo systemctl restart php7.4-fpm

$ systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-09-23 04:37:18 UTC; 18s ago
       Docs: man:php-fpm7.4(8)
    Process: 18065 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (code=exited, status=0/SUCCESS)
   Main PID: 18049
     Status: "Processes active: 0, idle: 3, Requests: 1, slow: 0, Traffic: 0.1req/sec"
      Tasks: 6 (limit: 4676)
     Memory: 41.7M
     CGroup: /system.slice/php7.4-fpm.service
             ├─18049 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─18062 php-fpm: pool www
             ├─18064 php-fpm: pool www
             ├─18072 php-fpm: pool shaarli
             ├─18073 php-fpm: pool shaarli
             └─18074 php-fpm: pool shaarli

Ça n’a rien changé. J’ai essayé de voir ce qui se passait. J’ai trouvé le fichier /var/www/shaarli/application/security/BanManager.php et j’ai essayé de lancer phpdbg sur index.php mais je comprends pas où ça coince.

(...):/var/www/shaarli# phpdbg -e index.php
[Welcome to phpdbg, the interactive PHP debugger, v8.0.23]
To get help using phpdbg type "help" and press enter
[Please report bugs to <http://bugs.php.net/report.php>]
[Successful compilation of /var/www/shaarli/index.php]

prompt> b 70
[Breakpoint #0 added at /var/www/shaarli/index.php:70]

prompt> run
[Breakpoint #0 at /var/www/shaarli/index.php:70, hits: 1]
>00070: $loginManager = new LoginManager($conf, $sessionManager, $cookieManager, $banManager, $logger);
 00071: $loginManager->generateStaySignedInToken($_SERVER['REMOTE_ADDR']);
 00072: 

prompt> info vars
[Variables in /var/www/shaarli/index.php (16)]
Address            Refs    Type      Variable
0x7f198d921f00     2       array     $argv
0x7f198d921f20     1       int       $argc
int (1)
0x7f198d815070     2       object    $conf
|-----(instanceof)----> (Shaarli\Config\ConfigManager)

0x7f198d815080     2       object    $logger
|-----(instanceof)----> (Katzgrau\KLogger\Logger)

0x7f198d815090     1       object    $sessionManager
|-----(instanceof)----> (Shaarli\Security\SessionManager)

0x7f198d8150a0     1       object    $cookieManager
|-----(instanceof)----> (Shaarli\Security\CookieManager)

0x7f198d8150b0     1       object    $banManager
|-----(instanceof)----> (Shaarli\Security\BanManager)

0x7f198d8150c0     1       number    $loginManager
0x7f198d8150d0     1       number    $containerBuilder
0x7f198d8150e0     1       number    $container
0x7f198d8150f0     1       number    $app
0x7f198d815100     1       number    $response
0x7f198d815110     1       number    $e
0x7f198d9220a0     1       array     $__composer_autoload_files
0x7f198d9220c0     1       array     $cookie
0x7f198d9220e0     2       string    $cookiedir
string (17) "/var/www/shaarli/"

prompt> ev $banManager
Shaarli\Security\BanManager Object
(
    [trustedProxies:protected] => Array
        (
        )

    [nbAttempts:protected] => 10
    [banDuration:protected] => 900
    [banFile:protected] => data/ipbans.php
    [logger:protected] => Katzgrau\KLogger\Logger Object
        (
            [options:protected] => Array
                (
                    [extension] => txt
                    [dateFormat] => Y-m-d G:i:s.u
                    [filename] => log.txt
                    [flushFrequency] => 
                    [prefix] => log_
                    [logFormat] => 
                    [appendContext] => 1
                )

            [logFilePath:Katzgrau\KLogger\Logger:private] => data/log.txt
            [logLevelThreshold:protected] => info
            [logLineCount:Katzgrau\KLogger\Logger:private] => 0
            [logLevels:protected] => Array
                (
                    [emergency] => 0
                    [alert] => 1
                    [critical] => 2
                    [error] => 3
                    [warning] => 4
                    [notice] => 5
                    [info] => 6
                    [debug] => 7
                )

            [fileHandle:Katzgrau\KLogger\Logger:private] => Resource id #33
            [lastLine:Katzgrau\KLogger\Logger:private] => 
            [defaultPermissions:Katzgrau\KLogger\Logger:private] => 511
        )

    [failures:protected] => Array
        (
        )

    [bans:protected] => Array
        (
        )

)

prompt> quit

J’ai aussi essayé de vider le dossier /var/www/shaarli/tmp/, sait-on jamais… Sans plus de succès.