In the blog post Upgrade of .NET agent for Azure Pipelines, we explained our plan to update the agent implementation from .NET Core 3.1 to .NET 6 in order to support newer operating systems. If you run your agents on any operating system supported by .NET 6, then this will be seamless to you. However, if you run the agent on one of the following operating systems, then this blog has some steps that you must take now in order to prevent pipelines from failing.
|System/Distribution||Version not supported by .NET 6|
|RedHat EL||<= 6|
|Ubuntu||<> 18.04, < 20.04|
Starting with 2.218 version of the agent that is going to be released in March 2023, pipelines running on any of the above operating systems will fail with the following error message. Note that this change has already been rolled out to agents running on Red Hat Enterprise Linux (RHEL) 6 with version 2.214 of the agent.
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.
You have two options once you get the above error in your pipelines:
- (Preferred) Move your agents to machines with newer operating systems. This is the best option as it will allow you to get future updates to the agent.
- Set the AGENT_ACKNOWLEDGE_NO_UPDATES variable on the agent.
Different methods to set AGENT_ACKNOWLEDGE_NO_UPDATES
To acknowledge the agent will no longer receive updates, you can configure an environment variable on the agent (e.g. /etc/environment, /etc/profile.d):
You can also set a pipeline variable from a YAML 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
And here is an example of setting a pipeline variable in a classic pipeline:
Any of the above methods to set
AGENT_ACKNOWLEDGE_NO_UPDATES=true will let the 2.218 or later 2.x agent continue to operate on the operating system that is not supported by the .NET 6.
- Azure DevOps 3.x agent – additional information for 3.x agent.
Q: I am running the 2.x agent on an operating system supported by .NET 6. what will happen after version 2.218 is released?
A: To summarize, nothing. You are not impacted by this change. Your agents will continue to be upgraded to future versions of 2.x and at some point to future versions of 3.x.
Q: How can I find agents running on unsupported operating systems?
A: You can run a script that will process all pools in your organization and identify 2.x agents on operating systems that are not supported by the 3.x agent.
Q: I got the error and set the variable AGENT_ACKNOWLEDGE_NO_UPDATES. How long can I operate in this model?
A: Setting the variable is a temporary solution to give you some time (say, a month or two) to update the operating systems. We recommend that you upgrade the operating systems as soon as possible. In the next few months, we will no longer ship any updates to 2.x agents and expect everyone to be on operating systems supported by .NET 6. If you continue with 2.x agents that cannot be upgraded, then any new features or pipelines that require a 3.x agent may fail, and there is no variable that you can set to get out of that situation.
Q: I use Azure DevOps Server and not Azure DevOps Service. Does this change impact me?
A: No. The new agent is only applicable for Azure DevOps Service customers at this time. However, a future version of Azure DevOps Server (2022.1) will include the new agent. So, it is recommended that you update your agent machines to newer operating systems that are supported by .NET 6 now if you plan to keep up with the Azure DevOps Server releases in the future.