Version 3 du logiciel de l’agent

Attention

Cet article fait référence à CentOS, une distribution Linux proche de l’état EOL (End Of Life). Faites le point sur votre utilisation afin de vous organiser en conséquence. Pour plus d’informations, consultez les conseils d’aide relatifs à la fin de vie de CentOS.

L’équipe en charge des pipelines met à niveau le logiciel agent de la version 2.x (qui utilise .NET Core 3.1) vers la version 3.x (qui utilise .NET 6). La nouvelle version de l’agent prend en charge le nouveau matériel Apple silicon et les systèmes d’exploitation plus récents comme Ubuntu 22.04 ou Windows sur ARM64.

Remarque

Cette fonctionnalité est disponible à partir d’Azure DevOps Server 2022.1.

Effectuer une mise à niveau vers l’agent 3.x sur les systèmes d’exploitation pris en charge

Si vous exécutez vos agents autohébergés sur des systèmes d’exploitation plus récents pris en charge par .NET 6, la mise à niveau vers la nouvelle version de l’agent est automatique.

Les systèmes d’exploitation suivants sont pris en charge par l’agent 3.x.

  • Linux
    • X64
      • CentOS 7, 8
      • Debian 10+
      • Fedora 36
      • openSUSE 15+
      • Red Hat Entreprise Linux 7+
        • Ne nécessite plus de package distinct
      • SUSE Enterprise Linux 12 SP2 ou version ultérieure
      • Ubuntu 22.04, 20.04, 18.04, 16.04
      • Azure Linux 2.0
      • Oracle Linux 7 et versions ultérieures
    • ARM64
      • Debian 10+
      • Ubuntu 22.04, 20.04, 18.04
    • Alpine x64
  • macOS
    • X64
      • macOS 10.15 « Catalina »
      • macOS 11.0 « Big Sur »
      • macOS 12.0 « Monterey »
      • macOS 13.0 « Ventura »
    • ARM64
      • macOS 11.0 « Big Sur »
      • macOS 12.0 « Monterey »
      • macOS 13.0 « Ventura »
      • Remarque : Toutes les tâches Azure Pipelines n'ont pas encore été mises à jour pour prendre en charge ARM64
  • Windows
    • Système d'exploitation client
      • Windows 7 SP1 ESU
      • Windows 8.1
      • Windows 10
      • Windows 11
    • Système d'exploitation du serveur
      • Windows Server 2012 ou version ultérieure

Effectuer une mise à niveau vers l’agent 3.x sur les systèmes d’exploitation non pris en charge

Si vous exécutez vos agents autohébergés sur un système d’exploitation qui n’est pas pris en charge par .NET 6, vous devez mettre à jour vos machines pour qu’elles utilisent un système d’exploitation plus récent pris en charge par .NET 6.

Le tableau suivant liste les systèmes d’exploitation couramment utilisés pour les agents 2.x autohébergés. Ces systèmes d’exploitation ne sont pas pris en charge par .NET 6 et ne peuvent pas être utilisés pour exécuter le nouvel agent version 3.x basé sur .NET 6.

Système/distribution Version non prise en charge par .NET 6
CentOS < 7
Debian <= 4.9
Fedora <= 32
RedHat Enterprise Linux <= 6
Ubuntu < 18.04 LTS
macOS < 10.15

Vous pouvez utiliser un script pour prédire si les agents de vos pools auto-hébergés peuvent effectuer une mise à niveau de la version 2.x vers la version 3.x.

Quand vous tentez d’exécuter des pipelines sur la version 2.218 (ou 2.214 sur RHEL 6) de l’agent, les pipelines s’exécutant sur l’un des systèmes d’exploitation non pris en charge listés ici échouent avec le message d’erreur suivant : This operating system will stop receiving updates of the Pipelines Agent in the future. To be able to continue to run pipelines please upgrade the operating system or set an environment variable or agent knob "AGENT_ACKNOWLEDGE_NO_UPDATES" to "true". See https://aka.ms/azdo-pipeline-agent-v2-eos for more information.

Pour résoudre cette erreur, vous pouvez :

  1. Mettez à niveau ou déplacez vos ordinateurs agents vers l’un des systèmes d’exploitation pris en charge listés précédemment dans cet article. Il s’agit de la solution recommandée, qui vous permet d’obtenir les mises à jour futures de l’agent.
  2. Définissez une variable AGENT_ACKNOWLEDGE_NO_UPDATES sur l’agent en définissant une variable d’environnement ou une variable de pipeline.
  • Vous pouvez définir AGENT_ACKNOWLEDGE_NO_UPDATES en configurant une variable d’environnement sur l’agent, par exemple dans /etc/environment ou etc/profile.d: AGENT_ACKNOWLEDGE_NO_UPDATES=true.

  • Vous pouvez définir une variable de pipeline.

    jobs:
    - job: 'agentWithVariables'
      displayName: 'Agent with variables'
    
      variables:
        AGENT_ACKNOWLEDGE_NO_UPDATES: 'true' # Required to not fail job on operating system that is not supported by .NET 6
    

Questions fréquentes (FAQ)

Quelle est la différence entre les agents 2.x et 3.x ?

Les agents 2.x (par exemple, 2.212) sont basés sur .NET Core 3.1 et les agents 3.x (par exemple, 3.212) sont basés sur .NET 6. Durant les phases I et II, les deux versions sont disponibles, les versions 3.x étant en préversion.

Comment puis-je vérifier mes agents pour savoir s’ils peuvent être mis à niveau vers la version 3.x ?

Vous pouvez utiliser un script pour déterminer si les agents de vos pools auto-hébergés peuvent être mis à niveau de la version 2.x vers la version 3.x.

Comment les problèmes de sécurité de l’agent seront-ils corrigés à l’avenir ?

Quand l’agent .NET 6 sera en disponibilité générale pour les pools auto-hébergés (1er trimestre 2023), aucun correctif ne sera effectué pour les agents 2.x d’une manière générale. Les correctifs seront effectués uniquement pour les agents 3.x. Toutefois, nous avons également des clients Azure DevOps Server qui continueront de s’appuyer sur des agents 2.x. Nous examinerons donc les problèmes de sécurité au cas par cas pour décider.

Que dois-je faire si mon système d’exploitation n’est pas pris en charge ?

Vous devez migrer dès à présent vers un système d’exploitation plus récent, pris en charge par .NET 6. Sinon, votre agent peut tenter une mise à niveau, mais celle-ci échouera, car .NET 6 ne peut pas être installé sur votre système d’exploitation. Nous publierons des conseils dans un billet de blog de suivi, pour éviter les mises à niveau automatiques de l’agent. Toutefois, il s’agit uniquement d’une solution temporaire pour vous donner le temps de mettre à niveau vos ordinateurs agents.

Puis-je conserver des agents 2.x si je ne travaille plus sur des modifications pour mon projet ?

Non. L’équipe en charge des pipelines ajoute régulièrement de nouvelles fonctionnalités à Azure Pipelines et certaines d’entre elles peuvent nécessiter une mise à jour de l’agent, même si votre pipeline ne dépend pas explicitement de ces fonctionnalités. Si vous empêchez les mises à niveau automatiques de l’agent en appliquant les conseils d’un blog de suivi, cet agent ne peut pas être utilisé pour planifier le pipeline. Si aucun agent possédant les capacités requises n’est trouvé, l’exécution du pipeline échouera.

Dois-je installer .NET 6 avant d’installer le logiciel agent 3.x ?

Vous n’avez pas besoin d’installer .NET 6 sur votre ordinateur agent avant d’installer et de configurer le logiciel agent 3.x. Toutes les dépendances .NET requises par l’agent 3.x font partie de l’agent lui-même.

Dois-je générer mon code avec .NET 6 si j’utilise l’agent 3.x ?

La version de .NET utilisée pour exécuter l’agent 3.x est une version autonome incluse dans l’installation de l’agent et n’est pas utilisée pour la génération de votre code. La version de .NET utilisée pour générer votre code dépend du pipeline et des versions de .NET installées sur votre ordinateur agent.

J’utilise Azure DevOps Server et non Azure DevOps Services. Ce changement a-t-il un impact sur moi ?

Oui, si vous utilisez l'une des versions d'Azure DevOps Server énumérées dans la section suivante.

L’équipe en charge des pipelines recommande de mettre à jour vos ordinateurs agents vers des systèmes d’exploitation plus récents pris en charge par .NET 6 à partir de maintenant, si vous envisagez de mettre à jour régulièrement Azure DevOps Server à l’avenir.

Azure DevOps Server prend-il en charge le logiciel agent 3.x?

Les versions d'Azure DevOps Server prennent en charge la version de l'agent qui est déployée avec cette version. Les versions suivantes d'Azure DevOps Server incluent une version de l'agent 3.x.

Quel est le calendrier de déploiement de l’agent version 3 ?

L’agent version 3 a été publié en mars 2023.

Que se passe-t-il quand une tâche nécessite la mise à jour d’un agent vers la version 3 ?

Normalement, quand une tâche nécessite une version plus récente de l’agent, celui-ci est mis à jour automatiquement. Pour l’instant, l’agent version 2 continue d’être mis à jour. Cependant, nous avons désactivé la mise à jour automatique de la version 2 vers la version 3 de l’agent. Quand nous l’activerons, pour les systèmes d’exploitation qui ne sont pas compatibles avec l’agent version 3, l’agent version 2.217 (ou ultérieure) ne tentera pas de mise à jour vers l’agent v3. Au lieu de cela, un avertissement s’affichera pour informer les utilisateurs qu’ils doivent d’abord mettre à niveau le système d’exploitation : The operating system the agent is running on is <OS>, which will not be supported by the .NET 6 based v3 agent. Please upgrade the operating system of this host to ensure compatibility with the v3 agent. See https://aka.ms/azdo-pipeline-agent-version