Microsoft Release Management is a great tool.Where the ALM workflow previously ended with a Build server package, Release Management now brings the tools to move that package to your environments and deploy it automatically.
However, running Release Management in a production environment is different from running it installed on one single virtual machine. In this blog I want to share some info I found while trying to install Release Management in more complex environments.
Release Management has a couple of different parts:
If all components are installed in the same Windows Domain you won’t have any problems. You can add users that can access the Release Management Client and Service Users for the deployment agents to Release Management and you’re all done.
However, when working with multiple domains things can get tricky. Fortunately, Microsoft has some great people working on Release Management who helped me out.
The first thing you should always check whenever you have any connection problems is if you can access the Web UI for Release Management at: http://<rm\sever>:
Now let’s get started with the Release Management client. If you have external customers or internal employees that are not connected to your companies Active Directory Domain, you have two options when connecting a user.
The first option is to use the domain account of the user and add that to Release Management together with the local username:
So for example, my local pc is running under an account named Wouter and my domain account is WdK1111. This means that I need to add both WdK1111 and Wouter to Release Management. Make sure to add Wouter without any machine name in front of it. Just add it as a plain username. You also don’t have to create a local shadow account named Wouter.
After configuring these two users, the Release Management server knows about your local machine account and about your domain account. Now you need to configure the client to know about both.
On the client machine, the user needs to add his domain account to the Credential Manager for the URL of your Release Management Server (like tfsrm.
And that’s it. After launching your client it will use the credentials from your credential manager and connect to Release Management with your local, non-domain account.
A second option you have is creating a shadow account on the Release Management machine. This shadow account should have the same username and password as your local pc account. This shadow account can then be added to Release Management and you can give it the appropriate permissions. This option is easier to configure since you don't need to configure the Credential Manager or use the domain account of the user. A problem with this option is that you need the password of the users local account. If that's a problem, you could have the user create a second account on their PC that's solely used for connecting the Release Management client.
The steps for the deployment agent are similar to those for connecting the client. But instead of using a domain account that’s mapped to a real user, you can create a local account on your TFS machine that can be used as the shadow account for your deployment agent.
And that’s it! Now both your Deployment agent and client can connect even when they’re not in the same domain.
There was one other situation I ran into. A customer was trying to run the Deployment Agent from behind a proxy. Since the Deployment Agent is initiating the HTTP Request, this is still allowed. However, you can still get the error
“Failed to configure Release management service user. Error: The remote server returned an error: (407) Proxy Authentication Required”.
You can fix this error by adding the following snippet to your app.config file located at Program Files (x86)Microsoft Visual Studio 12.0Release ManagementbinDeploymentAgent.exe.config:
<system.net> <defaultProxy useDefaultCredentials="true" /> </system.net>
And that’s it! When you get the hang of it, it’s quite easy to setup Release Management and configure all the authentication settings.
Comments? Feedback? Any problems with getting Release Management up and running? Please leave a comment!