Resource collision in Azure Devops Pipeline

The system I’m working with is using a private agent pool rather than hosted.

Roughly, my yaml defined procedure is the following and each step is dependent on the last:

  1. Build (to check for build failures)
  2. Test
  3. Deploy (I simply build and output the files into another predefined folder of servers on the local network)

The Issue in Detail

For different pipelines, the devops service is able to create different folders for each pipeline and I have little issues. However, regarding on the subject matter of different branches on the same pipeline; the issue I am running into is that if the CI/CD trigger gets scheduled too closely, the build and test directories for the pipeline will race condition causing at least one of the runs to fail. Furthermore, they can also interfere with each other’s “deploy” if the build tries to write to the same remote folder.

  • Is there a way to define a separate workspace for each branch so that building and testing happens in isolation from other runs?
  • Is there some sort of locking system I can implement so that only one
    job can execute my entire pipeline job atomically?


Scouring through the DevOps documentation, it appears you’re not supposed to be able to define the output folders or workspace folder through normal means.

I tried using the Exclusive Lock feature, but couldn’t find any documentation or examples on how to make this work with my pipeline (I instead, found an open issue on the Microsoft documentation GitHub saying the documentation was missing). It is my understanding this feature is extremely new.

I also noticed that the Hosted Agents use a separate vm container for each run that largely eliminate resource collision. Are we supposed to setup something similar on the private agent?

For reference, I am relatively new to Azure DevOps.

Go to Source
Author: Bennett Yeo

Azure Pipeline PowerShell@2 Task can’t run ‘invoke-build’ command as inline script (build PowerShell Module)

I’m trying to build a powershell module in an Azure pipeline (

I’ve setup an initial pipleline and then building it up incrementally in small steps, because inexplicable errors are encountered far too easily on Azure.

I’ve added a ‘Prepare’ stage:

name: $(Build.DefinitionName)_$(Date:yyyyMMdd))

- master

  vmImage: 'ubuntu-latest'

  major: 0
  minor: 0
  patch: $(Build.BuildID)
  buildVersion: $(major).$(minor).$(patch)

- stage: Prepare
    - job: Prepare
      - powershell: .bootstrap.ps1
        displayName: 'Install pre-requisites'

This is based on the original yaml that you get by default when you start a new Pipeline, so the part invoking the bootstrap file is what I got generated for free (This part works ok).

The bootstrap uses a dependencies file into which you can declare your dependencies and these are subsequently imported. One of those dependencies is InvokeBuild which contains the Invoke-Build command. So I would expect to be able to use the Invoke-Build command in subsequent stages.

The next part of the yaml pipeline is as follows:

- stage: Build
    - job: Build
        - task: PowerShell@2
            targetType: 'inline'
            script: 'invoke-build build'

The invoke-build build, in itself is ok valid and works on a local host.

The Build job fails with the following error:

/usr/bin/pwsh -NoLogo -NoProfile -NonInteractive -Command . '/home/vsts/work/_temp/edb3758b-8e16-448d-bea2-9ba18acb9693.ps1'
Invoke-Build: /home/vsts/work/1/s/do-build.ps1:3
Line |
   3 |  Invoke-Build build
     |  ~~~~~~~~~~~~
     | The term 'Invoke-Build' is not recognized as the name of a
     | cmdlet, function, script file, or operable program. Check the
     | spelling of the name, or if a path was included, verify that
     | the path is correct and try again.

I discovered there is another way to invoke the build with the PowerShell@2 task using the filePath input:

- stage: Build
    - job: Build
        - task: PowerShell@2
            filePath: '$(System.DefaultWorkingDirectory)/do-build.ps1'

the do-build.ps1 script is defined as:

Set-Location .Elizium.FakeBuddy
Invoke-Build build

(Elizium.FakeBuddy is the name of my PowerShell test module being built and that directory contains the InvokeBuild build script)

but this fails with the exact same error.

So why is the invoke-build command not available in the powershell session at the build stage, even though the Prepare stage has already imported the module.

The only thing I can think of is that different stages somehow don’t share the same powershell session, but I don’t know if this is correct, this seems unlikely, it doesn’t make sense that different stages dont share the same session.

EDIT: I tried an alternative version where the Build job is declared inside the same stage as Prepare, but this makes no difference, still a problem with Invoke-Build command.

Go to Source
Author: Plastikfan

Azure managed NFS shared storage for Azure VMs

What is a reliable way to implement Azure managed NFS shared for multiple Azure VMs?
The idea is an alternative to AWS EFS for multiple EC2.
I only found the following solutions with disadvantages:

So how do companies get an alternative solution to AWS EFS on Azure which makes sense?

Go to Source
Author: jwalker

How do i formulate file path for testsettings on the Runsettings file parameter

Whats the proper way to form relative file path/ or file path for the runsettings parameter


In my local environment this works but when i push it to build release agents it fails since
its looking for the file in a different directory.

This is the directory its looking at E:Agent_workr10axxxxxxxxx.testsettings,

here is my current way i have it set


here is the error message
Error: The test settings file E:Agent_workr10axxxxxxxxxx.testsettings, specified in the MSTestAdapter settings, is not available. Either access to the file is denied or the file does not exist. Ensure that the test settings file is available and try again.

instead of
E:Agent_workr10a_XXXXX CI BuilddropXXXXX_Automation_TestbinReleasexxxxxxxxx.testsettings

There is no documentation that states how to formulate the file path on msdn and didn’t see
anything online.

Go to Source
Author: skinnyWill

Remove AD Connect (no connection avaiable to on prem)

Whilst on a Windows Server 2016 course we created domain and setup AD Connect inside a lab. Unfortunately, the lab has since been wiped and now I’m getting emails daily regarding ad sync issues. Is there a way for me to remove AD Connect without having access to the “on prem” DC? I wouldn’t mind keeping my Azure subscription as I plan on studying a little more about it.

Cheers in advance.



Go to Source
Author: Luke Welden

Can’t connect to SSH on private IP through VPN gateway

Morning, everyone,

I’ve been having a strange problem for a few hours. I was SSH connected on my Azure virtual machine and my SSH connection suddenly froze (without disconnecting). I closed my shell and restarted my SSH session without success. I checked the NSGs with neighboring machines I connect well to, the NSGs are almost identical. I tried to reboot the machine, redeploy the machine, reset the SSH configuration, reset the user account, without success too. I can easily connect to other machines on the same subnet. I can connect on public IP. I feel like there’s a problem between the VPN gateway and the private IP… Any ideas?

Thank you

Note : I have the following entry in the health status :

At samedi 4 juillet 2020 à 3:15:32 PM UTC+4, the Azure monitoring system received the following information regarding your Virtual machine:
Your virtual machine is unavailable. We’re working to automatically recover your virtual machine and to determine the source of the problem. No additional action is required from you at this time.
Recommended Steps
Check back here for status updates
Redeploy this virtual machine to a different host server

Go to Source
Author: Bruno Carnazzi

Deploy .NET application from Jenkins on Linux to MS Azure Web service

We have .NET application which deployed to Azure Web services. Now is time to create deployment pipeline for it.

And want to know what is high level plan how .NET application can be deployed to Azure from Linux servers based on CentOS.

Do we need an AZ cli installed on Linux server to deploy it and Azure .NET SDK?

Go to Source
Author: pleyades

Azure ARM Triggers (e.g. Resource Created, Resource Removed, etc)

I am trying to find a way to trigger events on creation/removal of specific Azure Resources.

My goal is to add and/or remove these resources information to an App Gateway.

Can that even be done? My alternative would be to use a scheduled solution but I would love to avoid that.

Thanks in advance,

Go to Source
Author: Lucas Araujo

CI/CD ARM Templates – Should the cloud infrastructure and resources be checked on each deployment?

Given a company adopts infrastructure as code deployment model using ARM templates.

Is it a good practice to attempt to re-deploy the ARM templates alongside the application itself ?

If yes what deployment mode (incremental/substitution) should be used and why?

Thank you!

Go to Source
Author: Cristian E.

Does local cache solve the problem with locked files when deploying to Azure App Service?

During the deployments, occasionally I experienced issue with files being in use by App Service and thus not overwritten with newer versions.

There are multiple recommendations to overcome this problem:

  • Run your app from the ZIP package directly
  • Stop your app or enable offline mode for your app during deployment (using App_Offline.htm)
  • Deploy to a staging slot with auto swap enabled.

I am exploring the local cache option, to fix a different problem, and it is not compatible with running from ZIP feature, as discussed here

If I understand correctly, when using local cache, the ZIP with code is deployed to Storage Account, and then is loaded into memory on App Service restart.

Does this mean, the issue with locked files is eliminated by using local cache, since the code is not run from the same place where it’s deployed to?

Go to Source
Author: Alex