GNU/Linux >> Tutoriels Linux >  >> Debian

Installer/activer et configurer les mises à niveau sans surveillance sur Debian 11

Garder votre système à jour est un facteur important pour tous, des simples utilisateurs de bureau, développeurs, administrateurs système ; eh bien, avouons-le, toute personne possédant un appareil spécialement connecté à Internet. Debian, par défaut, n'est pas configuré pour les mises à jour automatiques. Cependant, en activant et en configurant les packages de mises à niveau sans surveillance, vous pouvez facilement appliquer des mises à niveau de sécurité, de package ou même de nouvelles fonctionnalités de manière simple, simple et efficace si vous n'avez pas toujours le temps de vérifier ou d'oublier. Il est fortement recommandé au service informatique de l'activer uniquement pour des raisons de sécurité.

Le didacticiel suivant montrera comment installer et/ou activer et configurer des mises à jour sans surveillance sur Debian 11 .

Prérequis

  • OS recommandé : Debian 11 Bullseye ou Debian 10, 9 ou tout système Debian encore mis à jour.
  • Compte utilisateur : Un compte utilisateur avec des privilèges sudo ou accès root (commande su) .

Mise à jour du système d'exploitation

Mettez à jour votre Debian 11 système d'exploitation pour s'assurer que tous les packages existants sont à jour :

sudo apt update && sudo apt upgrade

Accès racine ou sudo

Par défaut, lorsque vous créez votre compte au démarrage avec Debian par rapport aux autres distributions, elle ne reçoit pas automatiquement le statut sudoers. Vous devez soit avoir accès au mot de passe root utiliser la commande su ou visitez notre tutoriel sur Comment ajouter un utilisateur à Sudoers sur Debian.

Installer le package de mises à jour sans surveillance

Tout d'abord, si vous n'avez pas installé de mises à jour sans assistance ou si vous avez supprimé le package, vous devez le réinstaller avec la commande suivante :

sudo apt install unattended-upgrades

Par défaut, cela devrait être installé.

Vous devrez également installer le package apt-config-auto-update si vous voulez que votre système Debian redémarre après avoir appliqué des mises à jour nécessitant un redémarrage automatique du système. Pour ce faire, utilisez la commande suivante :

sudo apt install apt-config-auto-update

Pour les utilisateurs d'ordinateurs portables, vous devrez installer le package powermgmt-base si vous prévoyez d'utiliser des options sans surveillance qui utilisent des options de batterie.

sudo apt install powermgmt-base

Une fois l'installation terminée, Debian devrait démarrer le processus par défaut. Pour vérifier, utilisez la commande suivante :

sudo systemctl status unattended-upgrades

Exemple de résultat :

Les commandes systemctl suivantes expliquera les options dont vous disposez pour démarrer, arrêter, activer au démarrage, désactiver au démarrage ou redémarrer le service de mises à jour sans surveillance :

Pour démarrer les services sans surveillance :

sudo systemctl start unattended-upgrades

Pour arrêter les services sans surveillance :

sudo systemctl stop unattended-upgrades

Pour activer au démarrage les services sans surveillance :

sudo systemctl enable unattended-upgrades

Pour désactiver au démarrage les services sans surveillance :

sudo systemctl disable unattended-upgrades

Pour redémarrer sur les services sans surveillance :


sudo systemctl restart unattended-upgrades

Configurer les mises à niveau sans surveillance

Après avoir vérifié ou installé une mise à niveau sans surveillance, nous modifions maintenant les 50 mises à niveau sans surveillance fichier de configuration à l'aide de votre éditeur de texte de terminal préféré. À partir de là, vous pouvez configurer des mises à niveau sans surveillance à partir de certains des exemples de ce didacticiel et explorer certaines des autres options moins utilisées ; la documentation dans le fichier de configuration donne une bonne explication de chaque paramètre par lui-même.

Vous pouvez le faire avec la commande suivante :

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Exemple d'ouverture de fenêtre et premier aperçu :

Origines et mises à jour autorisées

Le package de mises à niveau sans surveillance ne traitera pas les lignes commençant par // syntaxe . Par défaut, seules les mises à jour de sécurité sont automatiquement installées, comme indiqué dans les lignes ci-dessous. Il serait préférable que vous ne désactiviez jamais les mises à jour de sécurité ; cependant, vous pouvez ajouter des options supplémentaires ici.

Par exemple, pour inclure les mises à jour normales des packages qui sont désactivées par défaut :

Changer de :

//      "${distro_id}:${distro_codename}-updates";

Modifier pour activer :

       "${distro_id}:${distro_codename}-updates";

Exemple de configuration fourni par défaut (recommandé pour la plupart des utilisateurs) :

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}";
        "${distro_id}:${distro_codename}-security";
        // Extended Security Maintenance; doesn't necessarily exist for
        // every release and this system may not have it installed, but if
        // available, the policy for updates is such that unattended-upgrades
        // should also install from here by default.
        "${distro_id}ESMApps:${distro_codename}-apps-security";
        "${distro_id}ESM:${distro_codename}-infra-security";
//      "${distro_id}:${distro_codename}-updates";
//      "${distro_id}:${distro_codename}-proposed";
//      "${distro_id}:${distro_codename}-backports";
};

Exemple dans un environnement en direct :

Pour détailler encore plus les options que vous pouvez activer en plus de la valeur par défaut :

  • "${distro_id} :${distro_codename}-mises à jour" ; – cette option sera la même que l'exécution de sudo apt update dans votre terminal pour extraire les mises à jour des packages. Le plus souvent, cela n'est pas conseillé car certains packages nécessitent une intervention manuelle lors de la mise à niveau. Si vous définissez ce make set sur liste noire, certains packages, dont vous savez qu'ils causeront des problèmes s'ils sont mis à jour sans surveillance, comme expliqué plus loin dans le didacticiel.
  • "${distro_id} :${distro_codename}-proposé" ; – cette option extraira les mises à jour des tests, ce n'est certainement pas recommandé pour tous les utilisateurs car les packages sont instables et peuvent même ne pas arriver dans un environnement en direct.
  • "${distro_id} :${distro_codename}-backports" ; – cette option activera les backports qui sont principalement utilisés pour mettre à jour les packages, c'est normalement plus stable que proposé mais pour une règle générale, vous devriez enquêter avant de l'activer car cela peut provoquer une instabilité.

Exclure les packages des mises à jour

Avec les mises à jour, certains packages peuvent devenir instables ou se casser complètement si vous ne supervisez pas le processus. Par exemple, une mise à jour automatique de Nginx pour un utilisateur ayant compilé ModSecurity échouera ; vous n'aurez souvent pas besoin de remplir quoi que ce soit ici; ceci est uniquement pour les serveurs dédiés exécutant des packages nécessitant une intervention.

Notez qu'il est toujours préférable d'utiliser les expressions python pour faire correspondre les packages :

Exemple de

// Python regular expressions, matching packages to exclude from upgrading
Unattended-Upgrade::Package-Blacklist {
    // The following matches all packages starting with linux-
//  "linux-";

    // Use $ to explicitely define the end of a package name. Without
    // the $, "libc6" would match all of them.
//  "libc6$";
//  "libc6-dev$";
//  "libc6-i686$";

Un exemple de modification exclut également l'application Web Nginx :

// Python regular expressions, matching packages to exclude from upgrading
Unattended-Upgrade::Package-Blacklist {
    // The following matches all packages starting with linux-
  "nginx";

    // Use $ to explicitely define the end of a package name. Without
    // the $, "libc6" would match all of them.
//  "libc6$";
//  "libc6-dev$";
//  "libc6-i686$";

Exemple dans un environnement en direct :

Supprimer les dépendances inutilisées

Ensuite, passez à la suppression automatique des dépendances inutilisées, qui ont trois options ; Le défaut est faux. Cependant, vous pouvez éventuellement activer ces paramètres. Fondamentalement, si vous mettez automatiquement à jour un paquet, les dépendances et/ou le noyau et les anciens restes qui ne sont plus utilisés ne sont plus nécessaires ; il les nettoiera et les supprimera automatiquement pour vous. Ceci est normalement toujours sûr à faire pour la plupart des utilisateurs.

Si vous ne souhaitez pas le faire, laissez la ligne intacte.

Exemple de :

// Remove unused automatically installed kernel-related packages
// (kernel images, kernel headers and kernel version locked tools).
// Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";

// Do automatic removal of newly unused dependencies after the upgrade
// Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

// Do automatic removal of unused packages after the upgrade
// (equivalent to apt-get autoremove)
// Unattended-Upgrade::Remove-Unused-Dependencies "false";

Modification de l'exemple également :

// Remove unused automatically installed kernel-related packages
// (kernel images, kernel headers and kernel version locked tools).
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";

// Do automatic removal of newly unused dependencies after the upgrade
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

// Do automatic removal of unused packages after the upgrade
// (equivalent to apt-get autoremove)
Unattended-Upgrade::Remove-Unused-Dependencies "true";

Exemple dans un environnement en direct :

Notifications par e-mail

Il est recommandé de configurer des notifications par e-mail, en particulier si vous exécutez des serveurs sans surveillance. Dans la configuration, une excellente option consiste à sélectionner un e-mail "en cas de changement", afin que vous ne receviez des notifications que lorsque le logiciel a changé. Vous pouvez également choisir "uniquement en cas d'erreur", afin de ne recevoir des notifications qu'en cas d'erreur.

Il est recommandé de sélectionner on-change car vous devez savoir quelles mises à jour se produisent sur votre système. Vous pouvez également définir une adresse e-mail ici :

Notez que cela nécessitera que vous ayez configuré des e-mails sur votre serveur pour que les notifications fonctionnent.

Exemple de :

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "[email protected]"
//Unattended-Upgrade::Mail "";

Modification de l'exemple également :

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "[email protected]"
Unattended-Upgrade::Mail "[email protected]";

Exemple dans un environnement en direct :

La deuxième option pour les notifications par e-mail concerne les éléments à signaler. Pour la plupart des utilisateurs, seules les erreurs ou les modifications sont suffisantes ; définir le rapport sur toujours entraînera potentiellement beaucoup d'e-mails indésirables, mais pour les systèmes critiques, cela peut être justifié.

Vous trouverez ci-dessous un exemple d'erreur uniquement en cas d'erreur, ce qui convient aux utilisateurs de bureau dans des environnements de non-production/serveur Web :

Exemple tiré de :

// Set this value to one of:
//    "always", "only-on-error" or "on-change"
// If this is not set, then any legacy MailOnlyOnError (boolean) value
// is used to chose between "only-on-error" and "on-change"
//Unattended-Upgrade::MailReport "on-change";

Modification de l'exemple également :

// Set this value to one of:
//    "always", "only-on-error" or "on-change"
// If this is not set, then any legacy MailOnlyOnError (boolean) value
// is used to chose between "only-on-error" and "on-change"
Unattended-Upgrade::MailReport "only-on-error";

Exemple dans un environnement en direct :

Options de redémarrage automatique

Faites défiler jusqu'à l'option Redémarrage automatique. Par défaut, cette option est désactivée, et presque tous les ordinateurs de bureau et en particulier les serveurs exécutant des logiciels et/ou des services dédiés ne l'auront pas, car cela peut souvent entraîner de grandes interruptions de ces services logiciels.

Néanmoins, supposons que vos services ne desservent que quelques personnes. Dans ce cas, cette option peut être viable. Les systèmes Linux/Ubuntu ne redémarrent généralement qu'en raison d'une mise à jour du noyau Linux qui est critique, mais j'ai des notifications automatiques de changement. Je saurai qu'il faudra le faire et je pourrai le planifier.

Exemple de :

// Automatically reboot *WITHOUT CONFIRMATION* if
//  the file /var/run/reboot-required is found after the upgrade
//Unattended-Upgrade::Automatic-Reboot "false";

Modification de l'exemple également :

// Automatically reboot *WITHOUT CONFIRMATION* if
//  the file /var/run/reboot-required is found after the upgrade
Unattended-Upgrade::Automatic-Reboot "true";

Exemple dans un environnement en direct :

Si vous activez l'option, vous pouvez définir le redémarrage avec les utilisateurs connectés ou non. Cela devrait être désactivé, car les utilisateurs connectés et forcés de se déconnecter en raison d'un redémarrage peuvent entraîner des interruptions des environnements de travail, sans parler de la frustration de cet utilisateur connecté.

Cependant, si vous préférez ceci sur :

Exemple de :

// Automatically reboot even if there are users currently logged in
// when Unattended-Upgrade::Automatic-Reboot is set to true
//Unattended-Upgrade::Automatic-Reboot-WithUsers "true";

Modification de l'exemple également :

// Automatically reboot even if there are users currently logged in
// when Unattended-Upgrade::Automatic-Reboot is set to true
Unattended-Upgrade::Automatic-Reboot-WithUsers "true";

Exemple dans un environnement en direct :

Si vous avez un petit serveur dans un fuseau horaire particulier et que vous connaissez une bonne heure pour redémarrer, disons 2 heures du matin, puis ajustez ce qui suit :

Exemple de :

// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
//  Default: "now"
//Unattended-Upgrade::Automatic-Reboot-Time "02:00";

Modification de l'exemple également :

// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
//  Default: "now"
Unattended-Upgrade::Automatic-Reboot-Time "02:00";

Exemple dans un environnement en direct :

Liste de contrôle finale pour les mises à jour sans surveillance

Pour vous assurer que les fichiers de mise à jour automatique sont présents dans le répertoire /etc/apt/apt.conf.d/ en utilisant les commandes suivantes :

cd /etc/apt/apt.conf.d
ls

Exemple de résultat :

ls
00CDMountPoint	      10periodic      20packagekit	     60icons
00trustcdrom	      15update-stamp  20snapd.conf	     70debconf
01autoremove	      20archive       50appstream
01autoremove-kernels  20listchanges   50unattended-upgrades

Ouvrez maintenant le fichier /etc/apt/apt.conf.d/20auto-upgrades :

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

Exemple de résultat :

Vous devriez voir le code de commande ci-dessous dans le fichier suivant. Sinon, copiez et collez :

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Par défaut, le réglage "1" est activé. Cependant, si vous voulez le désactiver, vous pouvez le changer en "0". Si vous n'aimez pas vérifier quotidiennement, changez le nombre en "2", ce qui permet de vérifier les mises à niveau automatiques tous les deux jours. Dans notre guide, par exemple, seulement nous l'avons changé en 2. Nous vous recommandons de laisser cet ensemble sur "1":

Exemple dans un environnement en direct :

Enregistrez le fichier (CTRL+O), puis appuyez sur Y , ensuite pour quitter appuyez sur (CTRL+X) pour quitter l'éditeur de texte.

Créer une tâche Cron pour les mises à jour sans surveillance

En option, si vous souhaitez un contrôle total sur le calendrier de vos mises à niveau automatiques, vous pouvez créer une tâche cron. Pour cela, ouvrez d'abord la crontab :

sudo crontab -e

Ensuite, ajoutez cette ligne au bas de la dernière entrée ; vous pouvez modifier le "timing" comme vous le souhaitez. Si vous êtes nouveau sur Linux, visitez Crontab.Guru, où vous pouvez obtenir de l'aide, créer et tester les paramètres cron.

Vous trouverez ci-dessous une démonstration pour exécuter exactement tous les 3 jours, à 4h00.

Exemple :

00 04 * * */3 /usr/bin/unattended-upgrade -v

Exemple dans un environnement en direct :

Enregistrez le fichier (CTRL+O), puis appuyez sur Y , ensuite pour quitter appuyez sur (CTRL+X) pour quitter l'éditeur de texte.

Comment accéder aux journaux des mises à jour sans surveillance

Enfin, les mises à niveau sans surveillance se connectent à son répertoire, donc si vous souhaitez vérifier les fichiers journaux pour tout problème et trouver des erreurs, vous pouvez le trouver sur le chemin suivant :

/var/log/unattended-upgrades/

Outils supplémentaires - Vérifier le redémarrage (Debian Goodies)

Un excellent programme pour vérifier si vous êtes retourné sur un serveur sur lequel des mises à jour automatiques ont été appliquées au lieu de vérifier les journaux ou les e-mails consiste à exécuter la commande checkrestart qui vous informera si des packages doivent être redémarrés.

Pour installer checkrestart, exécutez la commande suivante :

sudo apt install debian-goodies -y

Exécutez maintenant la commande suivante pour rechercher les packages nécessitant un redémarrage :

sudo checkrestart


Exemple de résultat :

Found 0 processes using old versions of upgraded files

Comme vous pouvez le constater, la machine utilisée par le didacticiel est à jour ; cependant, si quelque chose nécessitait un redémarrage manuel, il serait répertorié ici dans la sortie.


Debian
  1. Comment installer Tomcat 8.5 sur Debian 9

  2. Comment installer MongoDB sur Debian 9

  3. Comment installer Nginx sur Debian 9

  4. Comment installer Apache sur Debian 9

  5. Comment installer Jenkins sur Debian 9

Comment installer et configurer Wine (WineHQ) sur Debian 11 Bullseye

Installer et configurer GitLab sur Debian 11 Bullseye

Comment installer et configurer Git sur Debian 11

Comment installer et configurer Fail2ban sur Debian 11

Installer/activer SSH sur Debian 11 Bullseye

Comment installer Go sur Debian 11