Introduzione al MinRole di SharePoint Server 2016

Con la nuova funzionalità di SharePoint Server 2016 chiamata MinRole è possibile definire in modo più specifico rispetto alle versioni precedenti il ruolo di ogni server che entra a far parte di una farm.

Durante il processo di setup del server, nel momento in cui si sta creando una nuova farm o si sta effettuando il join ad una farm esistente, il MinRole istanzia e configura automaticamente i servizi del server a seconda del ruolo selezionato.

SharePoint Server 2016 dispone infatti di sei ruoli predefiniti:

Da notare che il ruolo Single-server farm, sebbene sostituisca la modalità di installazione Standalone Install delle precedenti versioni, richiede comunque che SQL Server sia collocato e configurato (sullo stesso server o su un server differente) prima del setup di SharePoint.

Come si effettua il deployment di una farm con MinRole?

È possibile utilizzare tre diversi approcci per creare una nuova farm SharePoint 2016 o per aggiungere un server SharePoint 2016 ad una farm esistente. Esaminiamoli in dettaglio.

Via SharePoint 2016 Products Configuration Wizard

Dopo aver installato i prerequisiti e aver completato la prima fase del setup di SharePoint 2016 (i cui dettagli non sono oggetto del presente articolo), viene proposto di avviare il Products Configuration Wizard. Dopo aver specificato se desideriamo creare una nuova farm o effettuare il join ad una farm esistente e dopo aver referenziato il server SQL che ospita il database di configurazione della farm (con relative credenziali di accesso), viene proposta la schermata riportata qui di seguito in cui è possibile selezionare uno dei sei ruoli precedentemente descritti. La scelta di eventuali ruoli non disponibili per la farm in questione viene automaticamente inibita.

Figura 1 – Setup di SharePoint 2016: scelta del ruolo

Via tool da riga di comando PSConfig.exe

La funzionalità MinRole aggiunge due nuovi parametri al tool PSConfig: LocalServerRole e ServerRoleOptional.

LocalServerRole specifica, attraverso i seguenti valori, il ruolo desiderato per il server oggetto di installazione:

  • WebFrontEnd
  • Application
  • DistributedCache
  • Search
  • Custom
  • SingleServerFarm

Ad esempio, il comando seguente crea una farm SharePoint 2016 referenziando alcuni parametri di configurazione sufficientemente comprensibili dal contesto (nome del SQL Server, dei database, dell’account di servizio, numero di porta per il sito della Central Administration, eccetera) e specificando come LocalServerRole il valore SingleServerFarm:

psconfig.exe -cmd configdb -create -server DEMOLABSQ01 -database ConfigDB -user DEMOLAB\FarmService -password Pa$$w0rd -passphrase Pa$$phr4se -admincontentdatabase AdminContentDB -localserverrole SingleServerFarm -cmd helpcollections -installall -cmd secureresources -cmd services -install -cmd installfeatures -cmd adminvs -provision -port 5555 -windowsauthprovider onlyusentlm -cmd applicationcontent -install

Via PowerShell

I parametri del MinRole LocalServerRole e ServerRoleOptional sono disponibili anche per PowerShell.

Anche lo script seguente crea una farm SharePoint 2016 specificando come LocalServerRole il valore SingleServerFarm:

New-SPConfigurationDatabase -DatabaseServer DEMOLABSQ01 -DatabaseName ConfigDB -FarmCredentials DEMOLAB\FarmService -Passphrase Pa$$phr4se -AdministrationContentDatabaseName AdminContentDB -LocalServerRole SingleServerFarm

Install-SPHelpCollection -All

Initialize-SPResourceSecurity

Install-SPService

Install-SPFeature -AllExistingFeatures

New-SPCentralAdministration -Port 5555 -WindowsAuthProvider NTLM

Install-SPApplicationContent

Quanti ruoli servono?

Considerando una farm SharePoint 2016 si basa su quattro ruoli “core” (Front-End, Application, Dsistributed Cache e Search), una topologia “MinRole-generated” sarà composta da almeno quattro server SharePoint, uno per ciascun ruolo, a cui aggiungere un server SQL.

Se poi vogliamo dotare la farm dei meccanismi di alta affidabilità indispensabili per un ambiente di produzione, dobbiamo raddoppiare il numero e passare a otto server
SharePoint (due per ruolo) ed un paio di server SQL configurati come nodi di un AlwaysOn Availability Group.

È comunque possibile costruire una farm SharePoint 2016 dotata di alta affidabilità, ma con meno di otto server, ricorrendo ad un mix di ruoli “core” e di ruoli “custom”: ad esempio, due server Front-end puri e due server personalizzati potrebbero essere sufficienti per soddisfare tutte le nostre esigenze (soluzione old-school, ma assolutamente percorribile). L’aspetto negativo di questo tipo di approccio è che i ruoli custom andranno configurati manualmente e con estrema attenzione dal punto dei servizi: ma del resto è esattamente ciò che un bravo amministratore di farm SharePoint pre-2016 aveva già imparato a fare!

Attenzione! Non possiamo installare e configurare nuove Service Application in una farm creata utilizzando il MinRole prima di aver collocato il numero minimo di server previsti dalla topologia scelta.

Per capirci: se abbiamo deciso di creare una farm con tutti i ruoli “core” separati, potremo installare una Service Application solo quando sarà
disponibile almeno un server per ciascuno dei quattro ruoli “core”: Front-end, Application, Distributed Cache e Search (quest’ultimo solo se vogliamo aggiungere la Service Application Search).

Come modificare il ruolo di un server?

È possibile modificare il ruolo di un server attraverso il sito della Central Administration e via PowerShell.

Via Central Administration, fare clic su System Settings, poi clic su Convert server role in this farm.

Nella sezione New Role, dal menu a discesa selezionare il nuovo ruolo che si intende applicare al server, poi fare clic su Apply.

Figura 2 – Role Conversion via Central Administration

Via SharePoint 2016 Management
Shell, con privilegi di securityadmin e di db_owner rispetto all’istanza di SQL Server e ai database che saranno aggiornati, nonché con appartenenza al gruppo locale Administrators del server su cui si andrà ad eseguire il cmdlet:

Set-SPServer -Role SERVER_ROLE -Identity SERVER_NAME

Dove:

  • SERVER_ROLE è il nuovo ruolo da assegnare: WebFrontEnd, Application, DistributedCache, Search, SingleServerFarm, o Custom;
  • SERVER_NAME è il nome del server a cui si intende modificare il ruolo.

Figura 3 – Role Conversion via PowerShell

Quali servizi sono associati a ciascun ruolo?

L’articolo di Microsoft TechNet https://technet.microsoft.com/en-us/library/mt667910(v=office.16).aspx elenca i servizi associati ad ogni ruolo.

Per ottenere una lista di tutti i servizi attivi (compresi quelli nascosti) è possibile utilizzare il cmdlet:

(Get-SPServer SERVER_NAME).ServiceInstances | Where-Object {$_.status -eq "online"} | FT TypeName, Hidden

Dove SERVER_NAME è il nome del server da interrogare.

A seguire, il risultato di questa richiesta fatta relativamente ad un server con il ruolo “Distributed Cache”:

Figura 4 – Servizi del MinRole “Distributed Cache”

Conclusioni

Il modello MinRole, oltre a semplificare il processo di deployment, consente di disporre di una farm SharePoint che nasce già ottimizzata dal punto di vista della distribuzione dei servizi e della scalabilità.

Per ulteriori informazioni visitate la pagina https://technet.microsoft.com/it-it/library/mt346114(v=office.16).aspx