Voici la doc d'upgrade d'Alternc sur nos serveurs.

historique

Une fois la mise à jour terminé ne pas oublier de tester.

Mise à jour 3.5.x vers 3.5.y

Upstream a fait une release récemment, donc maintenant ça veut installer la version upstream! On veut la version de Koumbit!!

Normalement c'est réglé côté puppet - la prochaine personne qui fait un upgrade est invitée à double-checker et retirer cet avis si tout est beau!

Avant de commencer, assurez-vous que tout roule et que vous avez l'espace disque disponible. Ça peut valoir la peine de se faire un courriel de test par exemple. Il est bon également d'avoir en main un courriel extérieur à l'installation pour pouvoir communiquer en cas de problème.

Cette procédure prend environ 45 minutes.

  1. Noter la version actuelle d'AlternC
    • Il y a une version de package, ex.: 3.5.0~rc1+0~20191218224408.56~1.gbp
    • Mais aussi la version taguée dans Git, ex.: 3.5.0.4
  2. backup du code d'AlternC
     # whereis alternc
     alternc: 
       /usr/sbin/alternc.install 
       /usr/lib/alternc 
       /etc/alternc 
       /usr/share/alternc
    • /usr/sbin/alternc.install est un symlink donc on n'a pas à le conserver
    • /usr/lib/alternc : ce sont les scripts. On fait un git init / git add / git commit de tout
    • /etc/alternc : config. faire un commit dans /etc vu qu'il y devrait déjà y avoir un dépôt Git pour etckeeper
    • /usr/share/alternc : le code. On fait un git init / git add / git commit de tout
  3. Vérfier que les derniers backups se sont terminés sans erreurs.
     tail /var/log/backupninja.log
     # Voir le motd.d pour la commande exacte qui peut être avec borg
     rdiff-backup -l backup-server.koumbit.net@backup.koumbit.net::/backup/server.koumbit.net//rdiff-backup
  4. Backup de la base de données
     mkdir ~/YYYYMMDD_backups_pre_upgrade_altc
     mysqldump alternc > ~/YYYYMMDD_backups_pre_upgrade_altc/alternc.sql
  5. Vérifier l'état des paquets
     apt-mark showhold 
     apt-cache policy alternc*
     # et ensuite apt-cache policy des autres paquets on hold
    S'il y a des updates dispos, checker ce que c'est pour avoir une idée de l'impact.
  6. Assurer que les dernières mises à jour ont bien été appliquées

    Dans la base de données d'AlternC, la "value" de la ligne dont le "name" est "alternc_version" dans la table "alternc_status" devrait correspondre au dernier fichier de /usr/share/alternc/install/3.5.0.x.xxx. Ou autrement dit :

     > SELECT value FROM alternc_status WHERE name='alternc_version';
    
  7. Retirer le hold sur les paquets à upgrader En général, il s'agit des paquets suivants :
     apt-mark unhold alternc alternc-certificate-provider-letsencrypt alternc-roundcube roundcube roundcube-mysql roundcube-plugins
  8. Faire la mise-à-jour
     apt update
     apt upgrade
    Le upgrade mentionne des changements dans certains fichiers et nous demande de choisir quelle version conserver. Prenez note de ces changements en regardant le diff, mais en général on veut prendre les versions fournies par les paquets. Puppet va remettre les configurations nécessaires à priori.

S'il y a roundcube, il est possible que ça demande s'il faut configurer la base de données de roundcube. À priori non puisqu'on a déjà une installation fonctionnelle lors d'un upgrade.

MAJ 3.3.11 (stretch) -> 3.5pre

En date du 27 mai 2019! 29971 Note, on vise l'intégration à puppet4 après la maj.

  1. Vérifier les configurations de debconf de votre alternc. Ça va vous aider si jamais puppet écrase certaines configurations.
    • # debconf-get-selections | grep alternc > /root/MAJalternc-debconfsetting.txt
      # cat !$
  2. rouler alternc.install et raccorder les changements au templates
  3. Avant de partir analyser le setup de vhost d'AlternC sur la base de données alternc
    •  MariaDB [alternc]> select count(0), type from sub_domaines group by type; 
      
  4. installer alternc-ssl (sinon, alternc3.5 va dire que certains table comme alternc.certificates n'existe pas)
  5. stop puppet : puppet agent --disable
  6. sources de koumbit dépot alternc35 : http://debian.koumbit.net/debian/dists/alternc35/ :

         echo 'deb http://debian.koumbit.net/debian alternc35 main' > /etc/apt/sources.list.d/alternc35.list
         apt update
    • enlèver les sources d'upstream ou de 3.3 de kt
  7. faire un backup de la base de données :

         mysqldump alternc > "/root/alternc-pre-upgrade-`date +%F`.sql"
  8. update les packages :

        apt remove alternc-ssl
    • Retirer la cron-job qui n'est pas supprimé quand on supprime le package.
      •  rm /etc/cron.d/alternc-ssl  

        apt upgrade alternc alternc-roundcube alternc-mailman
  9. mettre la ligne (sans quotes) ALTERNC_REQUEST_CERTIFICATES=system dans /etc/alternc/local.sh

    • Ceci fera en sorte que alternc-certificate-provider-letsencrypt ne demande seulement que les certificats de système lors d'alternc.install (e.g. ça évite d'attendre que des centaines de noms de domaines demandent soudainement un certificat)

  10. dans la base de données d'alternc: assurer que les variables fqdn_dovecot, etc. sont correcte dans le système :

         update variable set value = 'mail.<domaine>' where name in ('fqdn_postfix', 'fqdn_dovecot');
         update variable set value = 'ftp.<domaine>' where name = 'fqdn_proftpd';
         update variable set value = 'listes.<domaine>' where name = 'mailman_url';
    
  11. rouler alternc.install
    • erreur

              Running upgrade script 3.5.0.1.sql
      ERROR 1146 (42S02) at line 23: Table 'alternc.certificates' doesn't exist
      ERROR 1146 (42S02) at line 41: Table 'alternc.certif_hosts' doesn't exist
      ERROR 1062 (23000) at line 69: Duplicate entry 'fqdn_dovecot' for key 'PRIMARY'
      ERROR 1062 (23000) at line 73: Duplicate entry 'fqdn_postfix' for key 'PRIMARY'
      ERROR 1062 (23000) at line 77: Duplicate entry 'fqdn_proftpd' for key 'PRIMARY'
              Running upgrade script 3.5.0.2.sql
      ERROR 1064 (42000) at line 3: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near
       'UPDATE alternc_status SET value='3.5.0.2.sql' WHERE name='alternc_version'' at line 5
      Running upgrade script 3.5.0.3.sql
      ERROR 1071 (42000) at line 3: Specified key was too long; max key length is 1000 bytes 
      
      alter table sub_domaines drop index compte;
      alter table sub_domaines modify column valeur VARCHAR(1024);
  12. débogguer ce bris
    1. remplace webmail CNAME avec roundcube webmail access
  13. réactiver puppet

MAJ d'alternc de wheezy à stretch

En 2017/2018, nous avons mis à jour alternc dans le cadre de mise à jour des systèmes d'exploitation.


CategoryAlternc

AlterncUpgrade (last edited 2024-02-12 11:18:31 by nina)