Saturday, 28 February 2015

TFS on Azure – 01. Setup Virtual Network for AD in Azure

Prerequisite of setting up an AD (Active Directory) as a VM in Azure is to setup a virtual network.  Step by step guide is below.
In Azure Management Portal go to Networks and click on Create a Virtual Network.
01
Provide a name for the Virtual Network and select the closest region.
02
Keep the DNS Server and VPN Connectivity empty for the time being since after setting up AD in and DNS server this can be configured later.
03

Set 256/24 for Classless Inter-Domain Routing (CIDR). More information on CIDR can be found in below links.
http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
http://searchnetworking.techtarget.com/definition/CIDR
http://compnetworking.about.com/od/workingwithipaddresses/a/cidr_notation.htm
04
Once the final step of wizard submitted, the Virtual Network creation starts.
05
In few minutes Virtual Network is ready for use.
06

Thursday, 19 February 2015

Resolving Issues with Trigger Release in VS Release Management from TFS Build

You can use TFS builds to trigger release in VS Release Management. I have encountered some issues while testing this and thought worth sharing for the benefit of the others facing the same.
Issue 1 - The directory name is invalid

Exception Message: The directory name is invalid (type Win32Exception) Exception Stack Trace: Server stack trace: at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) at Microsoft.TeamFoundation.Build.Workflow.Activities.InvokeProcess.ProcessWrapper.Start() at Microsoft.TeamFoundation.Build.Workflow.Activities.InvokeProcess.InvokeProcessInternal.RunCommand(AsyncState state) at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs) at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink) Exception rethrown at [0]: at System.Activities.Statements.Throw.Execute(CodeActivityContext context) at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
1
How to resolve?
Install the VS Release Management Client in the build server and connect it to Release management server. The connecting user does not matter here.

Issue 2 - Release build failed

Exception Message: Release build failed (type Exception) Exception Stack Trace: at System.Activities.Statements.Throw.Execute(CodeActivityContext context) at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
2

How to solve?
As you can see in the image it says TFS Build service account needs to be added to Release Management server as a system user.
3

Release can be now triggered from TFS build and succeeds.
4

Saturday, 14 February 2015

Upgrade Guide - VS Release Management Server - 2013.2 to 2013.4

This is a step by step guide to upgrade VS Release management Server from 2013.2 to the latest update 2013.4.
1. Backup
Take a backup of release management database is a must before running the upgrade. It will be the only option to recover from a failure in upgrade process.
1
2 
3

2. Backup config files of RM Service and RM Web.
It is important to take backup of cofig files of the RM Service and Web since there could be some special config changes made to these files while setting up RM Server initially.
4
5
Backups of config files.
6
As long as backup of Release Management database and config files available recovering from a failure upgrade would not be an issue.
3. Uninstall VS RM 2013.2 (Old version)
It would not be possible to install VS RM 2013.4 without uninstalling the previous version. Below error would be given in such attempt.
Uninstalling will not remove any of the previous release information or release templates, paths,  environment configurations etc. since all those details are available in release management database and the uninstall will not change/delete the release management database.
8

Uninstall release management client (If installed) in release management server machine.
9
10
12
Uninstall release management server.
13
14
15
16
17
Make sure release management server and client uninstalled in release management server machine.
18
4. Install Release Management Server 2013.4
19
20
21

Click launch in above screen loads the configuration window.
5. Configure release management server.
Test the rmservice account and release management url and click Apply Settings. Provide SQL server name of the server containing the existing(current) release management database
22
Create database will not create a new database. it will update the existing release management database.
23
24

6. Install release management client.
Install release management client in the release management server machine to mange it.
25
26
27
 28
7. Connect client to release management server.
Connect release management server to client and verify previous data availability.
29
Click Yes
30
Previous release details available.
31
TFS connection to release management active.
31_1
Release templates are available.
32
Release management website working.
33
Previously configured deployment agents are available and ready. Deployment agents can be upgraded later and they will work without upgrade to them as well.
34
Release paths are unchanged.
35
The above confirms upgrade looks successful. It is possible to do further verifications using RM Client and doing a trial release or two in a demo environment.
36
37
7. Release management service and web, config file changes, update.
There could be changes made to config files, such as ApprovalRequestEmailLanding, which enables to connect to online available release management web site via a mobile phone etc, to do release pipeline approvals. These changes need to be reapplied in release management web and service config files. The backups of config files made in step 2 (2. Backup config files of RM Service and RM Web.) come in handy for this effort. It is not advisable to replace the new configs entirely with backup config files. Only required changes should be updated carefully to new config files referring the backup config files.
For example without the changes applied the email approval request link will not work without network or vpn connection to domain network which release management server belongs to.
View request here linked to local network url.
38
This can be updated in ApprovalRequestEmailLanding configuration in config files of web and service of the release management.
39
40
Once this is updated the online release management web site link in View Request for approval request emails is set by RM server.
44
8. Release management client previous versions with release management server 2013.4. in another machine.
If release management server is updated to 2013.4, all release management clients connecting to it should be updated to 2013.4. Release management client 2013.2 cannot connect to release management server 2013.4.
45
Once upgrade to release management client by uninstalling 2013.2 and installing 2013.4 allows connection to release management server 2013.4.
After upgrading client to 2013.4 there could be an incorrect configuration shown mixing up https and http when connecting initially.
47
This can be fixed by selecting HTTP option and then selecting HTTPS option again.
48
The client in outside release management server machine succeeds connecting to release management server.
49