Questa è una lista di quanto abbiamo fatto un paio di settimane or sono nella mia organizzazione, spostando il nostro TFS di sviluppo da un dominio ad un altro, lo scrivo nel caso qualcun’altro abbia la stessa necessità e al solito per trovarlo nel caso debba servirmi di nuovo.
Prima cosa da fare, leggere attentamente la documentazione su questo tipo di attività, iniziando da questo articolo di MSDN: Move Team Foundation Server from One Environment to Another verificando cosa dovete fare nel vostro specifico caso. Il nostro tipo di spostamento era del tipo più semplice, dovevamo spostare il nostro Singolo Server dal dominio XXX al dominio YYY senza cambiare altro.
La prima cosa che abbiamo fatto è stato un full backup di tutti i database di TFS sul Sql Server 2008 installato sulla macchina. Poi abbiamo fatto un Ghost del disco, per essere certi di poter fare un rollback in caso di problemi.
La procedura che abbiamo seguito dopo è stata la seguente:
- Abbiamo creato tutti gli utenti di servizio che esistevano sull’attuale infrastruttura nel nuovo dominio, questi utenti sono il TFSService user, il SQLService user, l’utente per il proxy e gli altri utenti di dominio richiesti dal sistema. Abbiamo inoltre dato loro la stessa password.
- Abbiamo aperto poi la console di configurazione di TFS e nella parte di security abbiamo riportato su un notes tutta la mappatura degli utenti e gruppi di windows e degli utenti e gruppi di TFS in ciascuno dei progetti che compongono la struttura di sviluppo applicazioni sul server. Gli utenti e i gruppi verranno eliminati nella migrazione pertanto è indispensabile mapparli correttamente per evitare “strepiti” da parte degli sviluppatori quando non avranno più accesso ai loro progetti.
- Un’altra cosa molto importante da ricordare è: NON CAMBIATE IL NOME DEL SERVER NEL NUOVO DOMINIO è molto importante, perché SQL Server 2008 ha alcuni problemi quando la propria istanza gli viene rinominata sotto il naso. Pertanto se nel nuovo dominio avete un nuovo metodo di nominare i server, per la vostra salute fisica e mentale, i vecchi server che spostate lasciate che muoiano con il vecchio nome.
- Dopo di questo, bisogna fermare tutti i servizi di TFS, questo lo si fa usando l’utility TFSServiceControl, una utility da linea di comando che trovate sulla cartella Tools sotto la cartella di installazione di TFS.
TFSServiceControl quiesce
E’ il comando che disattiva i servizi. - Dovete inoltre fermare IIS se avete Sharepoint installato sulla stessa macchina e fermare i servizi di SQL Server.
- A questo punto, spostiamo il nuovo server dal vecchio al nuovo dominio, prima di farlo ricordiamoci di dare all’utente SQL SA una password che ci permetta di usarlo o creiamoci un nuovo utente Sysadmin di tipo SQL. E attiviamo l’utente locale Administrator con una password a nostra scelta oppure creiamoci un local administrator che ci servirà per completare il cambio di dominio.
- Stacchiamo il server dal vecchio dominio usando un Domain Administrator per farlo e riavviamo.
- Logghiamoci con il local administrator e Verifichiamo che tutti i servizi siano fermi oppure fermiamoli di nuovo.
- Agganciamo il server al nuovo dominio, facciamolo ripartire e logghiamoci di nuovo come amministratore.
- Assegnamo i nuovi utenti di servizio a tutti i servizi che abbiamo fermato, quindi SQL Server, TFS ecc.
- Facciamo partire SQL Server ma non TFS.
- Apriamo SQL Server management studio e logghiamoci con SA o con il nostro Sysadmin, andiamo sulla cartella Security e verifichiamo che i gruppi della macchina locale (fra cui i builtin\administrators) abbiano mantenuto i diritti che avevano in precedenza. Poi mappiamo tutti i nuovi gruppi ed utenti di dominio che sostituiscono quelli presenti sulla macchina assegnando loro i corretti diritti sui database del TFS. Ricordiamoci poi di rimuovere i Database Mappings dei vecchi utenti prima di eliminarli per evitare che restino all’interno dei DB.
- Facciamo una serie di controlli a livello di macchina locale per verificare se avevamo generato dei gruppi locali sul server TFS in cui erano stati mappati utenti o gruppi di dominio, se li troviamo, rimappiamoli correttamente sugli utenti del nuovo dominio.
- A questo punto, dobbiamo utilizzare il comando Identities, che è una delle opzioni fornite dalla utility da riga di comando TFSConfig per modificare all’interno del database di configurazione di TFS i SID degli utenti di dominio usati dai servizi di TFS, l’utility si trova sempre sotto la cartella Tools della cartella di installazione di TFS. Trovate un articolo su MSDN linkato all’interno di quello che ho linkato all’inizio dell’articolo, che spiega esattamente come usare questo comando. Il comando è simile a questo:
TFSConfig Identities /change /fromdomain:olddomain /todomain:newdomain /account:accountname /toaccount:accountname
/sqlinstance:sqlserverinstancename /databasename:TfsConfigDatabase /account:sqlaccountname
Se avete conservato i nomi del server e i nomi utenti e password identici sui due domini, questa è una semplice procedura di routine da ripetere per tutti gli utenti. Nello sfortunato caso in cui abbiate dovuto cambiare il nome di un utente di servizio, c’è un altro comando della utility TFSConfig, che si chiama Accounts, che può essere usato per modificare gli utenti e le password di servizio prima di lanciare il comando identities. - Fatto questo, potete riattivare i servizi di TFS usando il comando
TFSServiceControl unquiesce. - Aprite la console di configurazione di TFS, tornate nella zona della security e dell’accesso utenti e riconfigurate tutti i gruppi e gli utenti windows e i gruppi e utenti TFS ed i loro diritti sui vari progetti di TFS con particolare cura per la parte Project Collection Valid Users. I Team Foundation Licensed Users, che vi trovate se siete partiti in passato con una versione workgroup, non sono più necessari.
Completata questa procedura, potete aprire un Visual Studio 2010 su un pc del nuovo dominio e connettervi al TFS client, se tutto è stato fatto correttamente, il server risponderà esattamente come rispondeva nel vecchio dominio.
Non ho parlato di Sharepoint, perché noi siamo un piccolo team e non lo usiamo, ma le guide di migrazione vi danno tutte le istruzioni per migrare anche i servizi di sharepoint perciò sono certa che con un po’ di cura, anche questo può essere fatto senza problemi.