Let There Be Code RSS 2.0
# Sunday, April 11, 2010

La semaine dernière j’ai testé la migration d’un serveur TFS 2010 d’une machine A vers une machine B et je vous propose de découvrir ici les différentes étapes pour y arriver.

Cet article aborde la migration des composants suivants :

  • le serveur TFS 2010 et ses collections,
  • le serveur Reporting Services,
  • le site SharePoint
1/ Détacher la collection de projets du serveur A

Lancer Team Foundation Server Administration Console, aller dans Application Tier, puis dans Team Project Collections.

Sélectionner la collection à détacher, puis dans l’onglet général cliquer sur Detach collection :

image

Le wizard suivant s’ouvre et nous invite à cliquer sur Next et Verify :

image

Après avoir cliqué sur Verify, si tout ce passe bien, on est invité à cliquer sur Detach :

image

Le warning m’indique 2 choses :

  • tout d’abord un message d’avertissement indiquant que la collection était attachée à une base de données SQL 2008 Enterprise et de prendre cette information en considération lors de la restauration sur un autre serveur SQL.
  • ensuite un message d’avertissement concernant les services de Builds. Ce message m’indique que si des builds sont en train de s’exécuter alors elles seront stoppées.

Cliquer ensuite sur Detach afin de détacher la collection. Voici le résultat :

image

Le message d’avertissement concernant les services de Build m’indique que le contrôleur et l’agent ont été désactivés.

2/ Récupérer les bases de données du serveur A

Pour restaurer le serveur TFS sur une autre machine, nous avons besoin de plusieurs bases de données. Bien évidemment cela dépend de l’installation qui a été faite. Dans mon cas j’ai installé le serveur TFS avec le portail Sharepoint et le serveur de rapports.

Depuis SQL Server Management Studio effectuer un backup des bases de données suivantes :

  • TFS_DefaultCollection
  • ReportServer
  • ReportServerTmpDB
  • WSS_Content

image 

3/ Backup de la clé de cryptage de Reporting Services

Certaines informations de reporting services, comme les mots de passe ou les chaines de connexion, sont cryptées en base de données. Lorsque l’on veut migrer un serveur Reporting Services il faut penser à effectuer un backup de la clé de cryptage afin de restaurer cette clé sur l’autre serveur.

Ouvrir Reporting Services Configuration Manager, puis aller dans Encryptions Keys :

image

Cliquer ensuite sur Backup, sélectionner une destination ainsi qu’un mot de passe :

image

4/ Restauration de la collection de projet sur le serveur B

Je ne décrirai pas l’installation du serveur TFS sur la machine B, car il suffit de faire une installation (en mode advanced) de TFS 2010.

Une fois TFS 2010 installé sur la machine B, restaurer la base de données Tfs_DefaultCollection sur le serveur SQL sur lequel pointe le nouveau serveur TFS :

image

5/ Attacher la collection au serveur TFS

Ouvrir la console d’administration de TFS, aller dans Application Tier, puis dans Team Project Collection et cliquer sur Attach Collection :

image

Sélectionner la base de données précédemment restaurer :

image

Cliquer ensuite sur Next et Verify :

image

Cliquer ensuite sur Attach :

image

Comme on peut le voir sur l’image ci-dessus, la collection a bien été rattachée au nouveau serveur TFS. Il reste à migrer/configurer Reporting Services et Sharepoint.

6/ Restauration de Reporting Services

Depuis SQL Server Management Studio, restaurer les bases de données Reporting Services (ReportServer et ReportServerTempDB).

Attention : lors de restauration de la base de données ReportServerTempDB, il faut lui donner le même nom que celui qu’elle avait sur l’autre serveur SQL. En effet le nom de cette base de données est écrit en dur dans les procédures stockées de la base ReportServer.

Ouvrir ensuite Reporting Services Configuration Manager, puis aller dans Encryption Keys et cliquer sur Restore :

image

Dans location, rechercher le fichier .snk précédemment récupérer sur l’autre serveur de rapport, rentrer le mot de passe puis cliquer sur OK.

7/ Suppression de la base de contenu Sharepoint existante sur le serveur B

Dans les outils d’administration, lancer l’outil SharePoint 3.0 Central Administration :

image

Cliquer ensuite sur Application Management, puis dans le menu Sharepoint Web Application Management cliquer sur Content databases :

image

Cliquer sur la base WSS_Content, dans les paramétrages de la base, cocher la case Remove content database puis cliquer sur OK :

image

8/ Restauration de la base de contenu

Sur le serveur B ouvrir SQL Server Management Studio, puis restaurer la base de données WSS_Content précédemment “backupée” depuis le serveur A.

Une fois la base de données restaurée, ouvrir SharePoint 3.0 Central Administration. Aller dans Application Management, puis dans le menu Sharepoint Web Application Management cliquer sur Content databases.

Cliquer ensuite sur Add Content Database :

image

Remplir les champs de connexion à la base de données précédemment restaurée puis cliquer sur OK.

9/ Configuration des Team Projects

Il reste à reconfigurer les portails des Team Project.

Ouvrir Visual Studio, ouvrir Team Explorer et se connecter au serveur TFS. Clic droit sur le Team Project, puis dans Team Project Settings, cliquer sur Portal Settings…

image

Dans le wizard qui s’affiche, cocher la case Enable Team Project Portal, puis cliquer sur Configure URL…

Sélectionner l’application Sharepoint puis indiquer le chemin d’accès au portail du projet :

image

Cocher la case Reports and dashboards refer to data for this team project, puis cliquer sur OK :

image 

10/ Réparation de la connexion à Sharepoint

Ouvrir la console d’administration de TFS, puis aller dans Sharepoint Web Applications :

image

Cliquer sur Repair Connection, puis dans le wizard cliquer sur Repair :

image

11/Reconstruction du cube

Dans la console d’administration de TFS, aller dans Reporting puis cliquer sur Start Rebuild :

image

12/ Vérification de la migration

Depuis Team Explorer, vérifier que vous pouvez vous connecter à votre nouveau serveur TFS, que vous récupérer la collection ainsi que les Team Project.

Vérifier que le portail est accessible : clic droit sur un Team Project puis cliquer sur Show Team Portal…

image

Si comme moi vous avez encore une erreur lors de l’exécution des rapports, aller sur le web service du datawarehouse (http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx) :

image

Exécuter la méthode ProcessWarehouse sans paramètre, puis ProcessAnalysisDatabase avec en paramètre Full.

Vérifier que les rapports s’exécutent correctement. Si aucun work item n’existe pour le Team Project, vous risquez d’avoir une erreur lors de l’exécution des rapports. Vous aurez une exception du style : Default value or value provided for the report parameter 'WorkItemTypeParam' is not a valid value. (rsInvalidReportParameter). Ceci est un bug connu (bug remonté sur connect : http://connect.microsoft.com/VisualStudio/feedback/details/499387/reporting-services-error-on-dashboard-of-sharepoint)

Pour ne pas avoir cette exception, il faut que le Team Project contienne au moins 1 work item. Créer un work item (de type tache par exemple) sur le Team Project puis attendez environ 10min, ou pour aller plus vite faire un iisreset.

La migration est maintenant terminée!!

13/ Conclusion

La migration d’un serveur TFS 2010 sur une autre machine n’est pas bien compliquée. De plus la nouvelle console d’administration de TFS est très pratique et permet de gagner pas mal de temps comparer à TFS 2008 et à ces outils en ligne de commande… La console d’administration de TFS 2010 permet de restaurer une collection simplement et rapidement. Après, quelques connaissances de Sharepoint et de Reporting sont nécessaires pour ne pas perdre trop de temps.

TFS Power !

Sunday, April 11, 2010 5:29:40 PM (Romance Daylight Time, UTC+02:00)  #    Voir Commentaires
TFS
Archive
<April 2010>
SunMonTueWedThuFriSat
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2010
Benoît Laut
Sign In
All Content © 2010, Benoît Laut
DasBlog theme 'Business' created by Christoph De Baene (delarou)