Mettre à jour les Clients Linux

Dans cette section est proposée une procédure de mise à jour automatique des Clients Linux qui repose sur un script lancé automatiquement à chaque démarrage du clinux.

Remarque

Cette procédure ne freine pas l'ouverture de session car le script se déroule en arrière plan. Elle garantie à la fois une ouverture de session optimale mais aussi une sécurité accrue.

Procédure

  1. Se connecter sur le SE4FS en root

  2. Déposer le script mise_a_jour_unefois.sh fourni ci-après dans le répertoire /var/sambaedu/clinux/once/

    Remarque

    Ce répertoire /var/sambaedu/clinux/once/ contient l'ensemble des scripts qui sont lancés au démarrage des clinux, lorsqu'ils se trouvent à la racine de ce répertoire.

    Dans ce répertoire, vous pouvez créer des sous-répertoires mais les scripts qui sont dans ces sous-répertoires ne seront pas lancés.

    script mise_a_jour_unefois.sh

    1
    #!/bin/bash
    2
    #
    3
    #***********************************************
    4
    # mise_a_jour_unefois.sh
    5
    #
    6
    # mise à jour des paquets installés
    7
    #
    8
    # Peut servir de modèle pour les scripts unefois (ou chaquefois)
    9
    # → rajoutez votre programme            → voir en bas de ce fichier
    10
    # → rajoutez un texte pour le témoin    → variable texte_temoin
    11
    #
    12
    # Si c'est un script chaquefois, commentez la ligne tester_temoin
    13
    #
    14
    # 20210429
    15
    #***********************************************
    16
    17
    texte_temoin="mise à jour des paquets"    # Mettre ici un texte court
    18
    19
    # Témoin de passage du script sur le client
    20
    script_nom="$(basename ${0})"   # nom du script, sans le chemin
    21
    nom="${script_nom%.*}"          # et sans l'extension
    22
    temoin=/root/temoins/temoin.${nom}
    23
    24
    tester_se4()
    25
    {
    26
        # pour éviter de lancer le script sur le se4fs
    27
        # On rend le script "crétin-résistant"
    28
        [ -e /var/sambaedu/clinux ] && echo "Malheureux... Ce script est à exécuter sur les clients-Linux, pas sur le serveur !" && exit 1
    29
    }
    30
    31
    tester_temoin()
    32
    {
    33
        # On teste si le temoin est présent ou non
    34
        if [ ! -e "${temoin}" ]
    35
        then
    36
            # pas de témoin : on peut donc continuer
    37
            true
    38
        else
    39
            # le témoin existe : on sort du programme
    40
            exit 0
    41
        fi
    42
    }
    43
    44
    poser_temoin()
    45
    {
    46
        # on pose un témoin d'exécution du programme
    47
        echo "${texte_temoin}" > ${temoin}
    48
    }
    49
    50
    en_silence()
    51
    {
    52
        # rendre non interractive la mise à jour pour cette session
    53
        export DEBIAN_FRONTEND=noninteractive
    54
    }
    55
    56
    ramasser_miettes()
    57
    {
    58
        # on termine une éventuelle mise à jour précédente inachevée pour une quelconque raison
    59
        # cas de paquets dépaquetés mais non configurés
    60
        dpkg --configure -a
    61
    }
    62
    63
    mettre_a_jour()
    64
    {
    65
        # On recharge la liste des paquets puis on met à jour les paquets
    66
        apt-get update && apt-get -y full-upgrade
    67
    }
    68
    69
    nettoyer()
    70
    {
    71
        # on supprime les paquets obsolètes
    72
        apt -y autoremove
    73
        # on supprime le cache apt
    74
        apt autoclean
    75
        # on nettoie
    76
        apt clean
    77
    }
    78
    79
    #*****
    80
    # programme
    81
    tester_se4      # pour éviter de lancer le script sur le se4fs
    82
    #tester_temoin   # à commenter pour un script chaquefois
    83
    # ↓ votre programme : début ↓
    84
    en_silence
    85
    ramasser_miettes
    86
    mettre_a_jour
    87
    nettoyer
    88
    # ↑ votre programme : fin ↑
    89
    poser_temoin
    90
    exit 0
    91
    # fin du programme

    ComplémentMéthode pour déposer le script sur le serveur

    Copier le contenu du script à déposer,

    se positionner sur le serveur dans le dossier indiqué,

    exécuter les commandes suivantes :

    nano mise_a_jour_unefois.sh # cela créé le fichier (s'il n'existe pas) et l'édite

    Ctrl+Maj+v # cela copie le contenu du presse papier

    Ctrl+o # pour enregistrer le fichier

    Ctrl+x # pour quitter l'édition du fichier

  3. Résultat

    Et c'est tout ! La mise à jour automatique des Clients Linux est en place. Elle aura lieu à chaque démarrage des clinux si des mises à jour sont disponibles.