Customers using Red Hat Enterprise Linux (RHEL) 6 should upgrade the OS on Self-hosted agents
RHEL 6 & .NET Core 3.1
The current versions of the Azure Pipelines agent across all OSes depend on .NET Core 3.1. .NET Core 3.1 no longer ships updates for RHEL 6, including security related patches. We will be updating the .NET Core 3.1 (minor) version to keep it up-to-date for other operating systems. As part of this update we will drop support for RHEL 6. Hence, v2.214 is the last agent version that will support RHEL 6. After February 13, no more agent releases will support RHEL 6.
What does this mean?
The agent release page has a separate RHEL 6 build, which we will stop releasing after v2.214. Any future functionality that requires a newer agent version will not be available to agents that run on RHEL 6.
We will provide one more RHEL 6 build: v2.214.2 to make sure customers using RHEL 6 based agents are aware of the fact no more updates will be released. If you are running the agent on RHEL 6, and if you update your agent to 2.214.2 (either manually or automatically), then your builds will fail with the following error:
RHEL 6 will no longer receive updates of the Pipelines Agent. To be able to continue 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-rhel6 for more information.
This is how we are making sure that customers with RHEL 6 agents are aware the installed agent will not receive any future updates. You can come out of this error and have your pipelines run on 2.214.2 agent with RHEL 6 by using one of the following mechanisms.
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 RHEL 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 agent continue to operate on RHEL 6.
Common questions and answers
- Q: What will happen in the case of a security vulnerability in .NET Core 3.1?
A: The agent will not be patched for RHEL 6, as there are no more updates to .NET Core 3.1 RHEL 6. Hence, you should move out of RHEL 6 machines and run the agent on a newer OS.
- Q: How can I find agents running RHEL 6?
A: You can run a script to identify pipeline agents that use RHEL 6 not supported by updated agents.
- Q: Why can’t updates be provided for RHEL 6, while they are for other operating systems?
A: .NET 3.1 shipped as a separate package for RHEL 6. Only this package is no longer provided.
- Q: What will happen to RHEL 6 agents after the agent v2.214.2 releases February 13?
A: Tasks receiving updates that require capabilities not provided by agent v2.214 will not get queued on RHEL 6 agents.
- Q: I’m not using RHEL 6, will I be impacted?
A: You will not be impacted by this change. However, we are also working on shipping a v3 agent with .NET 6. For more information about how that change will impact you, see blog post and documentation. This script will identify operating systems not compatible with the v3 agent as well.