Build a SharePoint 2013 Preview Farm

By James|September 24, 2012|

The Goal

I decided it was time to take a look at some of the new Microsoft technologies that are either currently available or on their way. Building a SharePoint 2013 Preview farm allows for exploration of Windows Server 2012, SQL Server 2012 and the SharePoint 2013 Preview.  With that in mind, the goal was to build out a SharePoint 2013 Preview farm in a lab environment that would emulate a small/medium production deployment.

The Disclaimer

Let me just say up front, this is not an extensive step-by-step guide.  This is more of a "what I did, what didn't work and how I fixed it" guide.  There are plenty of long, detailed and boring SharePoint 2013 Preview resources available on the web.  This is ... hopefully ... not one of them.  When I ran into problems, a visit to Uncle Google usually found the answer I was looking for.  My goal is to consolidate all of the issues and fixes into one easy to follow guide.

The Hardware

The farm was built on an Asus G74 laptop with a quad core processor, 32 GB of RAM and a 512 GB SSD. At a minimum, I recommend a desktop or laptop with a quad core processor, 16 GB of RAM and 100 GB of free hard drive space.

The Software

The farm was built in a virtual environment running inside VMware Workstation 9. I suggest taking a deep breath, opening your wallet and shelling out the $249 for VMware Workstation 9.  VMware Workstation is invaluable for development and testing, well worth the money in my opinion.

All of the required software can be downloaded and evaluated for free:

VMware Workstation 9 Trial
Windows Server 2012 180 Day Trial
SQL Server 2012 180 Day Trial
SharePoint Server 2013 Preview

The Prerequisites

I wanted to have the prerequisites downloaded and available so that the farm could be built out without any internet access. This requires downloading the following prerequisite files and setting up a prerequisite installer batch file. If you just want to let the SharePoint installer download everything, you can skip this section. If you want to do do an offline setup/install, follow along:

.NET Framework 4.5
Windows Management Framework 3.0 (CTP2) – PowerShell 3.0
Microsoft SQL Server 2008 r2 Native Client
Windows Identity Foundation (KB974405)
Microsoft Sync Framework Runtime v1.0 SP1 (x64)
Windows Server AppFabric
Windows Identity Extensions
Microsoft Information Protection and Control Client
Microsoft WCF Data Services 5.0
CU Package 1 for Microsoft AppFabric 1.1 for Windows Server (KB2671763)

Create a new folder and copy PrerequisiteInstaller.exe and msvcr100.dll from the root folder of the SharePoint 2013 Preview ISO into it.  Create a subfolder named "PrerequisiteInstallerFiles" and copy all the prerequisites that you downloaded into there.  Create a subfolder under PrerequisiteInstallerFiles named "NET35" and copy the contents of the Windows Server 2012 ISO \sources\sxs there.

NOTE: Windows Server 2012 comes with .NET 4.5. SharePoint Server 2013 and SQL Server 2012 require .NET V3.  Windows Server 2012 considers .NET V3 a "feature on demand" and will download it from the internet when required.  If you are doing an offline install this will never work.  The .NET V3 install files are included on the Windows Server 2012 installation media/ISO.  So, what we've doing is adding the .NET V3 installation to our offline prerequisites install.

Create a batch file to install the prerequisites:

@ECHO OFF
set PF="PrerequisiteInstallerFiles"

REM INSTALL NETFX3
dism /online /enable-feature /featurename:NetFX3 /All /Source:%PF%\NET35 /LimitAccess

REM INSTALL PREREQUISISTES
PrerequisiteInstaller.exe /SQLNCli:%PF%\sqlncli.msi ^
/PowerShell:%PF%\Windows6.1-KB2506143-x64.msu ^
/NETFX:%PF%\dotNetFx45_Full_x86_x64.exe ^
/IDFX:%PF%\Windows6.1-KB974405-x64.msu ^
/Sync:%PF%\Synchronization.msi ^
/AppFabric:%PF%\WindowsServerAppFabricSetup_x64.exe ^
/IDFX11:%PF%\MicrosoftIdentityExtensions-64.msi ^
/MSIPCClient:%PF%\setup_msipc_x64.msi ^
/WCFDataServices:%PF%\WcfDataServices.exe ^
/KB2671763:%PF%\AppFabric1.1-RTM-KB2671763-x64-ENU.exe

Save the batch file to wherever you placed the PrerequisiteInstaller.exe and msvcr100.dll files.  The file structure should look like this:

c:\SP2013Prereq

  • PrerequisiteInstaller.exe
  • msvcr100.dll
  • prereq2013.bat

C:\SP2013Prereq\PrerequisiteInstallerFiles

  • All the downloaded prerequisite files

C:\SP2013Prereq\PrerequisiteInstallerFiles\NET35

  • The contents of the Windows Server 2012 \sources\sxs folder

CREATE VIRTUAL MACHINE TEMPLATE

I would suggest creating a Windows Server 2012 template, from which you can quickly clone your farm servers.  Fire up VMware Workstation and select "Create a New Virtual Machine".  Choose the typical configuration.  When asked for the installer disc/ISO, select "I will install the operating system later".  Accept the defaults for the rest of the wizard.  Connect the Windows Server 2012 ISO to the VM and power it up.  Once you've got Server 2012 installed and running, open a command prompt and change directory to c:\windows\system32\sysprep.  Execute "sysprep.exe /generalize /oobe /shutdown".  Once the VM has shut down, select it (left click) then right click and choose Snapshot -> Take Snapshot.  Once you've created a snapshot, right click on the VM and select Settings.  Go to the Options tab -> Advanced, select "Enable Template Mode" and click OK.  You should now be able to right click the VM and select Manage -> Clone.

NOTE: If you specify the Windows Server 2012 ISO Image when creating the VM rather than choosing "I will install the operating system later", you will receive a fatal error during Windows Server 2012 installation.  I don't remember the exact wording, something to do with licensing terms.  Hopefully a forthcoming VMware Workstation patch will resolve this.

CREATE VIRTUAL MACHINES

Clone the Windows Server 2012 template five times.  This will be our farm:

DC1Active Directory Domain Services and DNS roles
SPCASharePoint 2013 running Central Administration Server
SPWFE1SharePoint 2013 web front end (NLB)
SPWFE2SharePoint 2013 web front end (NLB)
SPSQLSQL Server 2012 hosting the SharePoint 2013 databases

BASIC VM PREP

Power up your virtual machines and complete initial configuration.  For all VM's, perform the following using Server Manager -> Local Server:

  • Change the computer name
  • Turn off IE Enhanced Security Configuration
  • Set the time zone and verify time
  • Configure a static IP

PREPARE THE DOMAIN

Log onto your domain controller VM and add Active Directory Domain Services.  Provision your domain name, which will also install DNS.  I used dev.local for my domain name.  Create the following domain accounts (the names in brackets are what I used, feel free to use whatever you like):

  • SharePoint setup account [spsetup]
  • SharePoint Service Applications service Account [sp.ssa]
  • SharePoint Web Application Service Account [sp.portal]
  • Domain user to test/verify portal access [james]

Launch DNS Manager and add a host record for your portal's network load balanced IP.  You may also want to add a reverse lookup zone for your network.

Once your domain controller is up and running, reconfigure the IP settings on your other VM's to use the domain controller VM for DNS. Join the other VM's to the domain.

INSTALL SQL SERVER

Log onto your SQL Server 2012 VM.

NOTE: SQL 2012 requires .NET V3, which is considered a "feature on demand" for Windows Server 2012.  As such, when SQL Server 2012 installs, .NET V3 will be downloaded from the internet.  If you are doing an offline install, this will never work and SQL Server 2012 setup will fail.  The .NET V3 files are included on the Windows Server 2012 installation media/ISO.  For an offline install, connect the Windows Server 2012 ISO to the VM, open a command prompt and enter the following, replacing DRIVE with your VM's virtual DVD drive letter:

dism /online /enable-feature /featurename:NetFX3 /All /Source:DRIVE:\Sources\sxs /LimitAccess

Connect the SQL Server 2012 ISO image to the VM and run the setup.exe file located in the root folder.  I did not change any of the defaults.  For "Feature Selection" I enabled/installed "Database Engine Services" and "Management Tools - Complete".

When SQL Server setup is complete, launch SQL Management Studio and create a login for your SharePoint setup account [spsetup] and grant the account dbcreator and securityadmin rights.

PREPARE WEB FRONT ENDS

The web front ends will require two network adapters to support network load balancing, so add another virtual NIC to both.  Configure the second NIC on each front end with a static IP address and ensure that you do NOT configure default gateway or DNS server settings on the second NIC.  Use Server Manager to add the Network Load Balancing feature to both front ends.  Run the Network Load Balancing Manager on one the front ends to provision a NLB cluster.  Create the cluster using the NLB NIC on each front end, and configure the cluster name and IP address.

As an example, this is my farm IP layout:

DC1192.168.159.10/24
SPCA192.168.159.20/24
SPWFE1192.168.159.21/24 (PUBLIC)
192.168.159.23/24 (NLB)
SPWFE2192.168.159.22/24 (PUBLIC)
192.168.159.24/24 (NLB)
NLB IP192.168.159.25/24 NLB CLUSTER IP
SPSQL192.168.159.30/24

 

There are a few registry and network interface changes required for SharePoint to operate properly with network load balancing. Perform the following registry changes on each front end using regedit:

  • Navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters
  • Add a REG_DWORD value named "DisableStrictNameChecking" and set the value to 1
  • Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  • Right click Lsa and add a REG_DWORD value named "DisableLoopbackCheck" and set the value to 1
  • Exit registry editor

Perform the following NLB network interface changes on each front end from a command prompt (as administrator):

  • netsh interface ipv4 set interface NLB* forwarding=enabled
  • netsh interface ipv4 set interface NLB* weakhostsend=enabled
  • netsh interface ipv4 set interface NLB* weakhostreceive=enabled

* Where "NLB" is the name of your NLB network connection. You should name your interfaces something recognizable, like "PUBLIC" and "NLB"

Finally, we'll need to adjust the binding order of the NIC's. For both front end VM's:

  • Right click the network icon on the taskbar
  • Select "Open Network and Sharing Center"
  • Select "Change Adapter Settings"
  • Press ALT-N to open the Advanced Menu
  • Select "Advanced Settings"
  • On the "Adapters and Bindings" tab, move the PUBLIC NIC to the TOP of the list
  • Click OK, then close the dialogs opened up along the way.

INSTALL SHAREPOINT PREREQUISITES

Now it's time to install the SharePoint Server 2013 prerequisites.  Perform the following steps for both front ends and the Central Administration VM:

  • Attach the SharePoint Server 2013 ISO to the VM
  • If performing an offline setup, copy the prerequisite folder structure (created during "The Prerequisites" section) to the VM's hard drive and execute the batch file
  • If performing an online (download everything from the internet) setup, launch the PrerequisiteInstaller.exe from the root of the SharePoint installation media/ISO

NOTE: I did not try an online setup.  When performing the offline setup using the batch file, a reboot is required during prerequisite installation.  After the reboot, the prerequisite installer runs again and reports installation failure.  Ignore the failure message and run the batch file again.  The remaining prerequisites will install and report success.

INSTALL SHAREPOINT SERVER

With the prerequisites out of the way, now it's time to install SharePoint!  Perform the following on the CA VM:

  • Log onto the CA VM using the SharePoint Setup Account
  • Attach the SharePoint ISO
  • Run splash.hta from the root of the SharePoint ISO and select the "Install SharePoint" option
  • Make sure you "Create a new farm"
  • For the database settings, enter the name of the SharePoint SQL VM
  • When installation completes, do NOT launch Central Administration

Installation on the web front ends is basically the same, except select "join an existing farm".  Once SharePoint is installed on all 3 servers, launch Central Administration and begin configuration.  The configuration wizard will step through setting up shared services, the initial web application and site collection.

Unless everything has gone horribly wrong, you should now have a fully functional SharePoint 2013 Server Preview Portal!

CONCLUSION

Whew.  I think it took me longer to write this article than it did to actually build the farm!  Once you have all the necessary software, the actual deployment of the farm shouldn't take more than about 3-4 hours.  It took me considerably longer, as I ran into several *issues* which I had to individually research, test and correct.  Hopefully this article will prevent others from experiencing the pain I endured while rolling out SharePoint 2013 Server Preview.  Point those shares!

Copyright 2011 - 2021 The Lazy SharePoint Admin | All Rights Reserved
menu-circlecross-circle linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram