Deploy using VSO RM to Azure Linux with PS/DSC

281 views Asked by At

I have setup a Linux Srv in Azure with OMI/PSDCS and trying to deploy with VSO Release Management. I have created an Azure environment (I won't allow mw to create a Standard Env) and solved all certificate issues so far. Now it's failing because RM try to connect to the linux server using Negotiate Auth and (of course) the OMI service only supports Basic.

How can I make RM to use Basic? Or OMI to support Negotiate/NTLM? Any post or document showing ANY working VSO RM deploying to Azure without using Chef?

1

There are 1 answers

6
Vijay Machiraju On

The "Run PS/DSC task" that ships with RM does not support Linux deployments. The current implementation is quite dependent on Windows being the target. But, may I suggest a couple of workarounds?

For both of these workarounds, you should first have a PS script (with DSC configurations and Start-DSCConfiguration) that you can run from a Windows machine to target your Linux machine, without using RM or Build. You have complete control on how this script should be written including how the credentials are created, and the authentication method.

Once you have an independently tested PS script, you can do one of the following:

  1. Create a Build definition in your visualstudio.com account Build hub and use the Powershell Build step to run the above script. Note that this is the new Build system in VSO. It has the ability to run PS scripts easily. Note that you are creating a build definition here instead of a release template in RM. The new Release hub that will be available later this year in VSO will be very similar to the Build hub, and you can leverage the same PS script inside a Release definition once that is available. I tried this approach and it seems to work fine.

  2. Setup a Windows machine as a target Azure environment in RM. Create a vNext release template to then run the above PS script on the Windows machine. When that script is run, it will be able to target the Linux server. In this approach, you are using a Windows machine as a proxy to run the PS script. I have tried this using agent-based release template, and not with the vNext release template. I am hoping that it will work fine with the vNext release template as well.