{"id":66368,"date":"2023-02-03T07:58:25","date_gmt":"2023-02-03T15:58:25","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/devops\/?p=66368"},"modified":"2023-02-03T07:58:25","modified_gmt":"2023-02-03T15:58:25","slug":"customers-using-red-hat-enterprise-linux-rhel-6-should-upgrade-the-os-on-self-hosted-agents","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/devops\/customers-using-red-hat-enterprise-linux-rhel-6-should-upgrade-the-os-on-self-hosted-agents\/","title":{"rendered":"Customers using Red Hat Enterprise Linux (RHEL) 6 should upgrade the OS on Self-hosted agents"},"content":{"rendered":"<h2>RHEL 6 &amp; .NET Core 3.1<\/h2>\n<p>The current versions of the Azure Pipelines agent across all OSes depend on .NET Core 3.1. .NET Core 3.1 <a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/3.1\/3.1-supported-os.md#out-of-support-os-versions\">no longer ships updates for RHEL 6<\/a>, 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 <strong>February 13<\/strong>, no more agent releases will support RHEL 6.<\/p>\n<h3>What does this mean?<\/h3>\n<p>The agent <a href=\"https:\/\/github.com\/microsoft\/azure-pipelines-agent\/releases\">release page<\/a> 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.<\/p>\n<p>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:<\/p>\n<blockquote>\n<p><em>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 &#8220;AGENT_ACKNOWLEDGE_NO_UPDATES&#8221; to &#8220;true&#8221;. See <a href=\"https:\/\/aka.ms\/azdo-pipeline-agent-rhel6\">https:\/\/aka.ms\/azdo-pipeline-agent-rhel6<\/a> for more information.<\/em><\/p>\n<\/blockquote>\n<p>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.<\/p>\n<h3>Different methods to set AGENT_ACKNOWLEDGE_NO_UPDATES<\/h3>\n<p>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):<\/p>\n<pre><code class=\"bash\">AGENT_ACKNOWLEDGE_NO_UPDATES=true\n<\/code><\/pre>\n<p>You can also set a pipeline variable from a YAML pipeline:<\/p>\n<pre><code class=\"yaml\">jobs:\n- job: 'agentWithVariables'\n  displayName: 'Agent with variables'\n\n  variables:\n    AGENT_ACKNOWLEDGE_NO_UPDATES: 'true' # Required to not fail job on RHEL 6\n<\/code><\/pre>\n<p>And here is an example of setting a pipeline variable in a classic pipeline:<\/p>\n<p><img decoding=\"async\" src=\"classic-pipeline-knob.png\" alt=\"classic pipeline\" title=\"classic pipeline\" \/><\/p>\n<p>Any of the above methods to set <code>AGENT_ACKNOWLEDGE_NO_UPDATES=true<\/code> will let the agent continue to operate on RHEL 6.<\/p>\n<h2>Common questions and answers<\/h2>\n<ul>\n<li>Q: What will happen in the case of a security vulnerability in .NET Core 3.1?<br \/>\nA: The agent will <strong>not<\/strong> 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.<\/li>\n<li>Q: How can I find agents running RHEL 6?<br \/>\nA: You can run a <a href=\"https:\/\/github.com\/microsoft\/azure-pipelines-agent\/tree\/master\/tools\/FindAgentsNotCompatibleWithAgent\">script<\/a> to identify pipeline agents that use RHEL 6 not supported by updated agents.<\/li>\n<li>Q: Why can&#8217;t updates be provided for RHEL 6, while they are for other operating systems?<br \/>\nA: .NET 3.1 shipped as a separate package for RHEL 6. Only this package is no longer provided.<\/li>\n<li>Q: What will happen to RHEL 6 agents after the agent v2.214.2 releases February 13?<br \/>\nA: Tasks receiving updates that require capabilities not provided by agent v2.214 will not get queued on RHEL 6 agents.<\/li>\n<li>Q: I&#8217;m not using RHEL 6, will I be impacted?<br \/>\nA: 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 <a href=\"https:\/\/devblogs.microsoft.com\/devops\/upgrade-of-net-agent-for-azure-pipelines\/\">blog post<\/a> and <a href=\"https:\/\/aka.ms\/azdo-pipeline-agent-version\">documentation<\/a>. This <a href=\"https:\/\/github.com\/microsoft\/azure-pipelines-agent\/tree\/master\/tools\/FindAgentsNotCompatibleWithAgent\">script<\/a> will identify operating systems not compatible with the v3 agent as well.<\/li>\n<\/ul>\n<h2>Resources<\/h2>\n<ul>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/release-notes\/2022\/pipelines\/sprint-199-update#upcoming-upgrade-to-net-6--red-hat-6-deprecation\">RHEL 6 announcement<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>RHEL 6 &amp; .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 [&hellip;]<\/p>\n","protected":false},"author":26231,"featured_media":45953,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[224],"tags":[],"class_list":["post-66368","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure"],"acf":[],"blog_post_summary":"<p>RHEL 6 &amp; .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 [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/66368","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/users\/26231"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/comments?post=66368"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/66368\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media\/45953"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media?parent=66368"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/categories?post=66368"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/tags?post=66368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}