Einige Tage sind in’s Land gezogen, seitdem Sharepoint 2013 die Welt erblickt hat. Längst überfällig also, ein kleines HowTo für Euch zu schreiben. Zugegeben, es ist zwar kein einfaches Unterfangen, das Ding bereitzustellen, doch unmöglich sicherlich nicht. Auch ungeübte können mit ein paar Hilfestellungen schnell zu einem guten Ergebnis kommen.
Vorwort: Diese Anleitung erhebt keinen Anspruch auf Korrektheit. Anwendung auf eigene Gefahr!
Benötigtes Wissen:
Ein paar weitergehende Kenntnisse in IIS, sowie Administrationskenntnisse SQL Server und Grundkenntnisse in Active Directory und Powershell – Ich würde mal so sagen „Level 100“.
Benötigte Hardware:
Minimum 4vCPU und 8GB RAM. Beim Hauptspeicher sind wir in dieser Empfehlung jedoch am absoluten, unteren Minimum! Ich tendiere selbst zu deutlich mehr, wenn ich ihn denn hätte… Und den genehmigt sich Sharepoint auch sofort, sofern er ihn bekommen kann.
Vorarbeiten:
Zusätzlich ist ein gut konfigurierter, auf einer anderen Maschine laufender SQL2012 mit ordentlich Bumms notwendig und eine deutsche Sharepoint 2013 ISO – ausdrücklich nicht aus dem Action Pack, besser MSDN oder Technet. Die Seriennummer aus dem Actionpack kann auch auf anderen Medien verwendet werden. Beim SQL Server solltet Ihr (hier zum üben) erst einmal die Standardinstanz verwenden. Sollte in Eurer Umgebung auf dem SQL Server zu viel los sein, so empfehle ich Euch, pro virtueller CPU eine Datendatei für die TEMP-DB anzulegen (Also 4 vCPU = 4x Datendatei) und die Größe der jeweiligen Datenbank-Datei x 10MB pro Nutzer errechnen (also 20 User = 200MB) und diese auf 10% Wachstum zu definieren. So kann auch jeder verwendete Kern schnell in die TempDB wegschreiben, wenn der Rest mal wieder nicht hinterherkommt. Die Autostatistik für die TEMP-DB dürft Ihr auch gerne abschalten, um das letzte Bisschen Speed aus dem SQL Server herauszukitzeln. Ein schnelles Storage-Subsystem für den SQL-Server kann in großen Umgebungen nicht schaden.
(Beispielscreenshot, TempDB einer kleinen Umgebung mit 2vCPU’s und 15 Anwendern)
Ihr benötigt im AD mindestens 4 Konten, die ich hier wie folgt definiere:
Die Konten können mit ablaufendem Kennwort definiert werden. Sharepoint übernimmt für Euch die Kennwortänderung rechtzeitig (müsst Ihr dann in der Anlage der verwalteten Konten, später gezeigt, adäquat anpassen). In meinem Beispiel jedoch definiere ich nicht ablaufende Kennwörter für folgende Konten:
sps2013.appfabric sps2013.crawl sps2013.defaultpool sps2013.farm
Auf der Seite des SQL-Servers habe ich dem Konto sps2013.farm bereits Sysadminrechte gegeben:
Dem neuen, in’s AD gehobenen Server verpasse zunächst ich mittels DISM das benötigte .net Framework, während ich die Windows Server 2012 ISO eingelegt habe. Das ist – zumindest bei meinen letzten Erfahrungen – bei Server 2012 in Deutsch die sicherste Methode. Über Powershell und Servermanager kann es bei der einen oder anderen Version schon einmal gewaltig zu Problemen führen. Dazu öffne ich CMD mit administrativen Rechten und gebe folgenden Befehl ein:
dism /online /enable-feature /all /featurename:NetFx3 /source:d:\sources\sxs
Hinweis: Solltet Ihr stolpern bei der .Net Framework Installation, habe ich hier einen Tipp für Euch.
Nachdem ich das Framework auf der Maschine habe, verwende ich WUINSTALL oder Microsoft Updates, um alle Patches zu installieren. Hierbei liegt die Betonung auf Microsoft Updates, um auch die Hotfixes für .NETFX und andere, benötigten Dienste zu beziehen. Sharepoint müsst Ihr gesondert aktualisieren.
Beispiel-Screenshot: WUINSTALL mit meinem WSUS
Bevor es jetzt weiter geht, füge ich den Benutzer „domäne\sps2013.farm“ zur lokalen Administratorengruppe (falls per RDP verwaltet auch zur Remotedesktopgruppe) des neuen Servers hinzu und melde mich anschließend unter diesem Konto an. Da wir anschließend die SPS-Powershell aus diesem Kontext heraus starten, und viele Sharepoint-Verwaltete Konten unter diesem Kontext erstellt werden, können wir uns hierdurch eine Menge Zeit und Arbeit sparen, da wir nach der Installation abschließend nicht jedes verwaltete Konto neu konfigurieren müssen, sondern den Benutzer lediglich wieder aus der lokalen Admingruppe (ggf. RDP-Gruppe) entfernen müssen.
Alle Aktivitäten führe ich jetzt unter dem neuen Konto aus, beginnend mit der Installation der Prerequsites auf der DVD. Die Prerequisites kümmern sich um die Vorbereitung der gesamten Maschine perfekt, es kommt jedoch bei der Installation der Anwendungsserverrolle zum Absturz, sofern ich nicht vorab mittels DISM NETFX bereitgestellt habe.
Nach ein paar Neustarts, nach dem die Prerequisites nach Anmeldung jedes Mal wieder gestartet werden, ist’s auch schon fertig:
Falls gewünscht: Da das System jetzt den IIS richtig konfiguriert hat, kann ich auch gleich den privaten Schlüssel meines SSL-Zertifikats installieren. Auf alle Fälle aber aktualisiere ich die Maschine erneut mit Microsoft Updates oder WUINSTALL, da nach der Installation der Prerequisites wieder jede Menge Updates für mich bereitliegen.
Anschließend starte ich endlich das Setup von der DVD, gebe meinen Lizenzschlüssel ein und wähle „Vollständige Installation“.
Nach dem Setup möchte der Konfigurationsassistent gestartet werden, den Haken entferne ich allerdings,
und beginne mit der Powershell, welche ich als Admin (Rechtsklick, Als Admin ausführen – so wie wir das mit allen Applikationen ab jetzt machen) starte.
Die beschwert sich sogleich, dass sie keine Konfigurationsdatenbank findet, aber das ändern wir jetzt. Hierzu adaptiere ich den Befehl und gebe ihn ein:
New-SPConfigurationDatabase –DatabaseName JOE_SPS_SharePoint_Config -DatabaseServer NETBIOSNAMEDESSQLSERVERS –AdministrationContentDatabaseName JOE_SPS_SharePoint_Admin_Content
Witzigerweise kommt die Abfrage des Kontext zweimal, zunächst als Windows Logon und anschließend wird das Kennwort erneut in der Powershell abgefragt. Ich verwende hierzu das Konto, unter dem ich auch angemeldet bin: „domäne\sps2013.farm“.
Das ganze dauert ein wenig, da die Datenbanken adäquat auf dem SQL-Server angelegt werden. Je nach Performance Deiner Hütte können zwischen 20 Sekunden und 5 Minuten vergehen. Also, keine Sorge. Es ist völlig normal, dass das unter Umständen so lange dauert. Die Powershell solltest Du in jedem Fall erst schließen, nachdem Du die Eingabeaufforderung wieder sehen kannst.
Anschließend starte ich den Konfigurationsassistenten, ebenfalls als Administrator. Freundlicherweise werde ich darauf hingewiesen, dass einige Dienste neu gestartet werden. Aus Gewohnheit stelle ich den Port der Zentraladministrationswebseite auf 55555 und belasse es bei den anderen Einstellungen und warte ab.
Nach dem Fertigstellen startet sich sofort die Zentraladministrationswebseite. Ich verneine und sage, dass ich die Konfiguration selbst durchführe und den Assi nicht starten möchte:
Anschließend starte ich die Powershell und gebe die nachfolgenden Befehle ein:
New-SPStateServiceApplication -Name "JOE_SPS_State_Service_Application" Get-SPStateServiceApplication| New-SPStateServiceApplicationProxy -defaultproxygroup Get-SPStateServiceApplication| New-SPStateServiceDatabase -Name "JOE_SPS_State_Service_DB" Get-spdatabase| where-object {$_.type -eq"Microsoft.Office.Server.Administration.StateDatabase"} | initialize-spstateservicedatabase New-SPUsageApplication -Name "Usage and Health Data Collection" $proxy = Get-SPServiceApplicationProxy| where {$_.TypeName-eq"Proxy für die Sammlung von Verwendungs- und Integritätsdaten"} $proxy.Provision()
Anschließend wechsle ich in der Zentraladministration auf //Sicherheit/Verwaltete Konten konfigurieren:
und füge zu dem vorhandenen Konto die nachfolgenden Konten
sps2013.appfabric sps2013.crawl sps2013.defaultpool
wie hier gezeigt hinzu,
so dass ich anschließend diese Konten in der Liste angezeigt bekomme:
Anschließend müssen wir uns um den Crawler kümmern. Also wechsle ich in die //Anwendungsverwaltung/Dienstanwendungen verwalten
Klicke dann auf //Neu/Suchdienstanwendung:
Anschließend betitle ich die entsprechende Suchdienstanwendung und verwende für die ebenfalls für die beiden von mir neu betitelten, erzeugten Anwendungspools den Kontext „domain\sps2013.crawl“.
Anschließend wird die Übersicht bei mir wie folgt angezeigt:
Anschließend wechsle ich in die //Allgemeine Anwendungseinstellungen/Suchen/Suchverwaltung der Farm
Und klicke meine zuvor neu erstellte Suchanwendung an:
Und aktualisiere so lange, bis ich in der Suchanwendungstopologie alle Haken grün habe:
Anschließend wechsle ich auf //Suchverwaltung/Durchforstung wird ausgeführt/Inhaltsquellen/Lokale Sharepoint Websites/Bearbeiten
Und füge die URL der zukünftig angelegten Websitesammlungen hinzu. Ebenfalls erstelle ich Zeitpläne:
Ein Starten der Durchforstung macht jetzt noch keinen Sinn, deswegen wechsle ich zunächst in die Powershell und korrigiere das Konto für den verteilten Cache. Dazu ist folgendes Script notwendig, indem ich domain\sps2013.appfabric – frei nach Technet – durch meine Domäne anpasse:
$farm = Get-SPFarm $cacheService = $farm.Services | where {$_.Name -eq “AppFabricCachingService”} $accnt = Get-SPManagedAccount -Identity domain\sps2013.appfabric $cacheService.ProcessIdentity.CurrentIdentityType = “SpecificUser” $cacheService.ProcessIdentity.ManagedAccount = $accnt $cacheService.ProcessIdentity.Update() $cacheService.ProcessIdentity.Deploy()
Anschließend wechsle ich in //Sicherheit/Farmadministratorgruppe verwalten/ und füge adäquat Konten hinzu. Zum Schluss wechsle ich noch einmal in die Suchverwaltung und starte die Durchforstung, die ich zuvor ausgelassen habe.
Zum Schluss entferne ich das Konto „domain\sps2013.farm“ wieder aus der lokalen Administratorengruppe und führe einen Neustart der Hütte durch.
Nach dem Neustart könnt Ihr Euch wieder mit Eurem normalen Administrationsaccount, den Ihr auch in den Farmadministatorengruppe hinterlegt habt, anmelden und die Zentraladministration starten. Jetzt könnt Ihr endlich, wie Ihr es gewohnt seid, über //Anwendungsverwaltung eine Webanwendung hinzufügen und eine Websitesammlung erstellen. Für den neuen Applikationspool könnt Ihr auch wieder das Konto „domain\sps2013.defaultpool“ verwenden. Ihr solltet auf jeden Fall nicht die Default Website verwenden, sondern eine wirklich neue Webanwendung mit neuem, virtuellen Verzeichnissen verwenden.
Tja, da bist Du eigentlich fast fertig. Eigentlich läuft es ja schon. Doch damit Du alle Features nutzen kannst, solltest Du noch deine gewohnten Dienstanwendungen konfigurieren. Die hübsche SkyDrive Pro Funktion oder das Abonnement von Webseiten, Dokumenten und Listen klappt z.B. nur mit einer Benutzerprofilsynchronisierungs-Dienstanwendung (Tipp am Ende) und einer passenden, zugehörigen My Site (Webseitensammlung/Templates/Enterprise/Mein Webseitenhost). Auch an Excel und Visio Grafikdienst solltest Du denken. Und so wächst die Liste der Dienstanwendungen bestimmt auch bei Dir nach und nach:
Und auch die Liste der „Dienste“ auf Deinem Server sollte nach und nach immer mehr gestartete Objekte enthalten:
Und irgendwann wirst auch Du bemerken, dass die bei mir verplanten 8GB doch deutlich zu wenig sind, denn in der Zentraladministration wird folgender Hinweis gezeigt:
Also: Mehr Hauptspeicher ist hier definitiv mehr. Auf NUMA solltest Du gleich ganz verzichten. Und auch die anderen Fehler werden hier angezeigt. Immer wieder beliebt: Der Visio Grafikdienst und Hinweise zur Fehlerbehebung.
Wichtiger Hinweis zu SSL / Neue, passende URL: Wenn Ihr eine externe URL wie z.B. https://sharepoint.firma.com verwenden möchtet, müsst Ihr die Webanwendung immer erweitern. Es geht nicht wie früher, einfach bei den Bindungen der Webseite im IIS https und das passende Zertifikat hinzuzufügen. Klickt Eure Webandwendung an und anschließend auf „Erweitert“. So könnt Ihr eine neue Webanwendung mit Bezug auf Eure bestehende unter der Verwendung von SSL erstellen. In dieser wird im IIS zwar https als Bindung hinzugefügt, allerdings müsst Ihr über Bindung bearbeiten noch das richtige Zertifikat zuweisen.
Ebenfalls müsst Ihr den öffentlichen Schlüssel im Standardformat (CER), also ohne persönlichen Schlüssel in Sharepoint Server 2013 importieren. Das Zertifikat sollte in //Zentraladministration/Sicherheit/Vertrauensstellung über „NEU“ hinzugefügt werden:
Und dann einfach einen Namen geben, wie z.B. GoDaddy und das CER importieren. So könnt Ihr sicher sein, dass auch der Crawler über diese URL funktioniert.
Tipp: Solltet Ihr dann noch mit Authentifizierungsproblemen beim Aufruf der SSL-Webseite kämpfen müssen, so hilft folgender Artikel weiter: Link. Dieser Artikel hat auch bei mir (Server 2012) funktioniert.
Hinweis zum Upgrade von Sharepoint 2010: Gerne könnt Ihr auch anschließend wieder eine Inhaltsdatenbank mounten, um z.B. ein Upgrade von Sharepoint 2010 Inhalten durchzuführen. Wie das geht, steht hier ganz gut beschrieben: Link. Wenn Ihr bei dem Upgrade Features vergessen habt, kann es schnell schon einmal zu einem Abhängigkeitsproblem kommen. D.h. Sharepoint zeigt an, dass ein Feature fehlt. Backup vorausgesetzt, hilft Euch „FeatureAdmin“ von Codeplex vielleicht weiter, um diese Abhängigkeiten zu finden und kann diese auch entfernen, sofern Ihr nicht den Wunsch habt, dieses erneut zur Verfügung zu stellen (Link).
Wichtiger Hinweis zu den Updates: Vergesst nicht, die letzten Updates von Microsoft für Sharepoint Server zu installieren. In meinem Fall (KB2767999) liegen die hier: Link. Zu den Updates gibt es noch ein paar weitere Infos von mir. Je nach Update müsst Ihr anschließend die Datenbanken und die Inhaltsdatenbanken aktualisieren. Zum Aktualisieren der Inhaltsdatenbanken gebt Ihr folgenden Befehl ein:
Upgrade-SPContentDatabase DATENBANKNAME
Das sieht dann in etwa wie folgt aus:
Anschließend müsst Ihr noch die weiteren Datenbanken aktualisieren. Dazu wechselt Ihr in eine Dosbox mit administrativen Rechten in folgendes Verzeichnis:
C:\Program Files\Common Files\microsoft shared\Web Server Extensions\BIN
Dann gebt Ihr folgenden Befehl ein:
PSCONFIG.EXE -cmd upgrade -inplace b2b -force -cmd applicationcontent install -cmd installfeatures
Das sieht in etwa wie folgt aus (dauert ein wenig):
Ob alles in Ordnung ist, seht Ihr in der Zentraladministration unter //Upgrade und Migration/Datenbankstatus verwalten. Wenn Ihr die Updates wie oben beschrieben durchgeführt habt, dann sollte das in etwa wie folgt aussehen:
Tipp zur Benutzerprofilsynchronisierung: In Sharepoint 2013 gibt es einen neuen Modus, welcher einfacher zu konfigurieren ist, schneller und ressourcenschonender arbeitet und wahrlich besser ist, als alles, was Du zuvor gemacht hast: Sharepoint Active Directory Import. Das ist auch für mich neu. Diesen Hinweis eines freundlichen Supporters aus Bukarest habe ich gerne angenommen. Dazu benötigst Du einen Benutzer, welcher über besondere Privilegiendelegierung verfügt. Alles, was Du dazu wissen musst, findest Du hier beschrieben: Link.
Neuer Modus: AD-Import:
Konto mit besonderen AD-DS Rechten:
//adsiedit.msc/“cn=configuration,dc=domain,dc=tld“ Konto benötigt folgende Rechte:
Lesen Active Directory-Replikation überwachen Alle Verzeichnisänderungen replizieren Replikationssynchronisation Verzeichnisänderungen replizieren
Ich wünsche Dir viel Spaß mit Sharepoint 2013!
Update 29.03.2014: Es gibt endlich ein (rd. 690 Seiten starkes) Handbuch, in jenem Du auch Teile meiner Vorgehensweise nachlesen kannst: Link