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 :
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 :
Le wizard suivant s’ouvre et nous invite à cliquer sur Next et Verify :
Après avoir cliqué sur Verify, si tout ce passe bien, on est invité à cliquer sur Detach :
Le warning m’indique 2 choses :
Cliquer ensuite sur Detach afin de détacher la collection. Voici le résultat :
Le message d’avertissement concernant les services de Build m’indique que le contrôleur et l’agent ont été désactivés.
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 :
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 :
Cliquer ensuite sur Backup, sélectionner une destination ainsi qu’un mot de passe :
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 :
Ouvrir la console d’administration de TFS, aller dans Application Tier, puis dans Team Project Collection et cliquer sur Attach Collection :
Sélectionner la base de données précédemment restaurer :
Cliquer ensuite sur Next et Verify :
Cliquer ensuite sur Attach :
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.
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 :
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.
Dans les outils d’administration, lancer l’outil SharePoint 3.0 Central Administration :
Cliquer ensuite sur Application Management, puis dans le menu Sharepoint Web Application Management cliquer sur Content databases :
Cliquer sur la base WSS_Content, dans les paramétrages de la base, cocher la case Remove content database puis cliquer sur OK :
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 :
Remplir les champs de connexion à la base de données précédemment restaurée puis cliquer sur OK.
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…
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 :
Cocher la case Reports and dashboards refer to data for this team project, puis cliquer sur OK :
Cliquer sur Repair Connection, puis dans le wizard cliquer sur Repair :
Dans la console d’administration de TFS, aller dans Reporting puis cliquer sur Start Rebuild :
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…
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) :
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!!
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 !
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.