Kochrezept – Sharepoint 2013 Schritt für Schritt / Step by Step

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.
Bildschirmfoto 2013-11-20 um 20.02.58

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.

Bildschirmfoto 2013-11-21 um 18.50.11

(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:

Bildschirmfoto 2013-11-20 um 19.38.56

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:

Bildschirmfoto 2013-11-20 um 19.58.06

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.

Bildschirmfoto 2013-11-20 um 20.31.15Beispiel-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.

Bildschirmfoto 2013-11-20 um 21.08.57

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.

Bildschirmfoto 2013-11-20 um 22.53.19

Nach ein paar Neustarts, nach dem die Prerequisites nach Anmeldung jedes Mal wieder gestartet werden, ist’s auch schon fertig:

Bildschirmfoto 2013-11-20 um 22.58.58

Bildschirmfoto 2013-11-20 um 23.00.25

Bildschirmfoto 2013-11-20 um 23.02.04

Bildschirmfoto 2013-11-20 um 23.04.21

Bildschirmfoto 2013-11-20 um 23.07.21

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.

123

Bildschirmfoto 2013-11-20 um 23.15.06

Anschließend starte ich endlich das Setup von der DVD, gebe meinen Lizenzschlüssel ein und wähle „Vollständige Installation“.

Bildschirmfoto 2013-11-20 um 23.21.16

Bildschirmfoto 2013-11-20 um 23.21.52

Bildschirmfoto 2013-11-20 um 23.25.22

Nach dem Setup möchte der Konfigurationsassistent gestartet werden, den Haken entferne ich allerdings,

Bildschirmfoto 2013-11-20 um 23.27.07

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.

Bildschirmfoto 2013-11-20 um 23.28.49

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“.

Bildschirmfoto 2013-11-20 um 23.31.30

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.

Bildschirmfoto 2013-11-20 um 23.38.08

Bildschirmfoto 2013-11-20 um 23.38.26

Bildschirmfoto 2013-11-20 um 23.38.33

Bildschirmfoto 2013-11-20 um 23.38.43

Bildschirmfoto 2013-11-20 um 23.38.57

Bildschirmfoto 2013-11-20 um 23.39.09

Bildschirmfoto 2013-11-20 um 23.39.16

Bildschirmfoto 2013-11-20 um 23.42.41

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:

Bildschirmfoto 2013-11-20 um 23.44.43

Bildschirmfoto 2013-11-20 um 23.44.54

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()

 

Bildschirmfoto 2013-11-20 um 23.48.13

Anschließend wechsle ich in der Zentraladministration auf //Sicherheit/Verwaltete Konten konfigurieren:

Bildschirmfoto 2013-11-20 um 23.49.22

und füge zu dem vorhandenen Konto die nachfolgenden Konten

sps2013.appfabric
sps2013.crawl
sps2013.defaultpool

 

Bildschirmfoto 2013-11-20 um 23.49.36

wie hier gezeigt hinzu,

Bildschirmfoto 2013-11-20 um 23.50.29

so dass ich anschließend diese Konten in der Liste angezeigt bekomme:
Bildschirmfoto 2013-11-20 um 23.51.24

Anschließend müssen wir uns um den Crawler kümmern. Also wechsle ich in die //Anwendungsverwaltung/Dienstanwendungen verwaltenBildschirmfoto 2013-11-20 um 23.55.36

Klicke dann auf //Neu/Suchdienstanwendung:

Bildschirmfoto 2013-11-20 um 23.56.55

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“.

Bildschirmfoto 2013-11-20 um 23.59.10Bildschirmfoto 2013-11-20 um 23.59.20

Bildschirmfoto 2013-11-21 um 00.01.25

Anschließend wird die Übersicht bei mir wie folgt angezeigt:
Bildschirmfoto 2013-11-21 um 00.01.33

Anschließend wechsle ich in die //Allgemeine Anwendungseinstellungen/Suchen/Suchverwaltung der Farm

Bildschirmfoto 2013-11-21 um 00.03.29

Und klicke meine zuvor neu erstellte Suchanwendung an:

Bildschirmfoto 2013-11-21 um 00.03.43

Bildschirmfoto 2013-11-21 um 00.03.57

Und aktualisiere so lange, bis ich in der Suchanwendungstopologie alle Haken grün habe:

Bildschirmfoto 2013-11-21 um 00.09.23

Anschließend wechsle ich auf //Suchverwaltung/Durchforstung wird ausgeführt/Inhaltsquellen/Lokale Sharepoint Websites/Bearbeiten

Bildschirmfoto 2013-11-21 um 00.11.39

Und füge die URL der zukünftig angelegten Websitesammlungen hinzu. Ebenfalls erstelle ich Zeitpläne:

Bildschirmfoto 2013-11-21 um 00.12.48

Bildschirmfoto 2013-11-21 um 00.12.15

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()

 

Bildschirmfoto 2013-11-21 um 00.21.19

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.

Bildschirmfoto 2013-11-21 um 00.26.06

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.

Bildschirmfoto 2013-11-21 um 00.34.46

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:

Bildschirmfoto 2013-11-22 um 00.14.39
Und auch die Liste der „Dienste“ auf Deinem Server sollte nach und nach immer mehr gestartete Objekte enthalten:

Bildschirmfoto 2013-11-22 um 00.16.10

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:

Bildschirmfoto 2013-11-22 um 00.17.28

Bildschirmfoto 2013-11-22 um 00.17.39

Bildschirmfoto 2013-11-22 um 00.17.58

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.

Bildschirmfoto 2013-11-21 um 19.02.34
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:

Bildschirmfoto 2013-11-21 um 16.38.18

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.

Bildschirmfoto 2013-11-21 um 18.06.59
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:

Bildschirmfoto 2013-11-22 um 01.08.49

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):

Bildschirmfoto 2013-11-22 um 01.09.20
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:

Bildschirmfoto 2013-11-22 um 01.10.24

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:

Bildschirmfoto 2013-11-25 um 21.39.14

Konto mit besonderen AD-DS Rechten:

Bildschirmfoto 2013-11-25 um 17.12.54

//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

 

Bildschirmfoto 2013-11-25 um 21.46.39

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

Veröffentlicht in Allgemein