Mettre à jour Samba-AD sur RHEL et dérivées

Les dépôts RPM sont signés et il est recommandé de valider la signature des paquets en configurant la clef GPG sur les dépôts YUM.

wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8  http://samba.tranquil.it/RPM-GPG-KEY-TISSAMBA-8 sha256sum /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8
  b3cd8395e3d211a8760e95b9bc239513e9384d6c954d17515ae29c18d32a4a11  /var/www/samba/RPM-GPG-KEY-TISSAMBA-8

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8

Avant chaque mise à jour il est nécessaire de faire une sauvegarde de la machine. Il sera aussi intéressant de l’isoler s’il y a d’autres serveurs en réplication au cas où il y aurait quelque chose qui se passerait mal et que l’on voudrait revenir sur un snapshot (attention, remonter un snapshot dans un environnement AD n’est pas quelque chose d’anodin !).

systemctl stop samba
rsync -aP /var/lib/samba/ /root/backup_samba_20210520/
systemctl start samba

Après chaque mise à jour il est nécessaire de vérifier la base de données. En effet le code Samba prend de plus en plus de cas particulier en compte, et il peut être nécessaire de faire une passe sur la base de données pour conformer certains attributs ou types de structure.

samba -V
systemctl restart samba
samba-tool dbcheck --cross-ncs
samba-tool dbcheck --cross-ncs --fix --yes

Note

Si vous n’avez qu’un seul AD en DNS internal dans votre domaine, il faudra ajouter temporairement un deuxième serveur DNS dans le fichier /etc/resolv.conf pour permettre de faire les requêtes DNS pendant que le serveur Samba sera éteint.

Note

Si le serveur ne prend pas en compte les nouveaux paquets lors de l’upgrade, il peut être utile de lancer la commande yum clean metadata pour être sûr qu’il prenne en compte la mise à jour de la configuration du dépôt tis-samba.

Mise à jour mineure de Samba-AD dans une même branche majeure (4.18, 4.19, 4.20, etc.)

Si vous avez suivi la documentation pour la configuration des dépôts un simple upgrade suffit. Comme mentionné ci dessus une sauvegarde avant et un samba-tool dbcheck --fix --yes après upgrade est recommandé.

Lors de certaines upgrade (par ex. la version 4.11.5) il peut être nécessaire d’effectuer d’autres manipulation. Pour cela il est conseillé de lire les Changelog de Samba.

yum upgrade

Mettre à jour Samba 4.11 et suivantes vers Samba 4.20

echo "[tis-samba]
name=tis-samba
baseurl=http://samba.tranquil.it/redhat8/samba-4.20/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8" > /etc/yum.repos.d/tissamba.repo
  • Lancer la mise à jour :

    yum makecache
    systemctl stop samba
    yum install -y samba samba-winbind samba-winbind-clients krb5-workstation ldb-tools bind ntp bind-utils samba-client
    systemctl enable samba
    systemctl restart samba
    
  • Après la mise à jour, lancer un dbcheck comme mentionné ci-dessus :

    samba -V
    systemctl restart samba
    samba-tool dbcheck --cross-ncs
    samba-tool dbcheck --cross-ncs --fix --yes
    

Mettre à jour Samba 4.10 vers Samba 4.11 sur CentOS7

Lors de mises à jour des paquets Samba, les noms de paquets peuvent évoluer pour se conformer à des règles de nommage. Il peut aussi y avoir des évolutions avec le passage progressif à Python 3 et en même temps un abandon progressif de Python 2.

Comme pour l’upgrade 4.9 à 4.10 il est nécessaire de désinstaller les paquets Samba pour qu’ils puissent se mettre à jour correctement. En effet avec l’arrivée du support Python 3 dans CentOS7 la nouvelle norme de nommage des paquets Python 3 est en python-3 et plus python-36. Les données ne sont pas touchées lors de cette manipulation.

echo "[tis-samba]
name=tis-samba
baseurl=http://samba.tranquil.it/redhat7/samba-4.11/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8" > /etc/yum.repos.d/tissamba.repo
  • Lancer la mise à jour :

    yum makecache
    systemctl stop samba
    yum remove python36-samba
    yum install -y samba samba-winbind samba-winbind-clients krb5-workstation ldb-tools bind ntp bind-utils samba-client
    systemctl enable samba
    systemctl restart samba
    
  • Après la mise à jour, lancer un dbcheck comme mentionné ci-dessus :

    samba -V
    systemctl restart samba
    samba-tool dbcheck --cross-ncs
    samba-tool dbcheck --cross-ncs --fix --yes