I have to admit that Lync has been one of the products I missed most over the past year as I’ve been mainly on VMware/Citrix application and desktop virtualization projects so I’ve completely skipped testing the preview version due to my busy schedule. With no spare cycles till Christmas, I thought taking this last long weekend in Bermuda to deploy it in my company’s internal environment.
Note that the following deployment uses the Lync Server 2013 RTM documentation dated October 24, 2012. As I remember Lync Server 2010, Microsoft usually releases a more detailed Microsoft document a few months after the product has been released: http://blogs.technet.com/b/nexthop/archive/2012/10/24/microsoft-lync-server-2013-preview-rtm-documentation-now-available.aspx
Prerequisites & Requirements
Prior to actually jumping into the deployment, it’s important that your environment and new servers that you intend on deploying Lync Server 2013 meets all of the prerequisites and requirements. I won’t drill into every single detail as you can find the documentation here:
http://technet.microsoft.com/en-us/library/gg412892.aspx
However, the following are some items I’ll highlight:
Windows Operating System Requirement:
Note that Lync Server 2013 is only supported on the following operating system:
- Windows Server 2008 R2 SP1 or latest service pack
- Windows Server 2012
http://technet.microsoft.com/en-us/library/gg398588.aspx
Software Requirements (for the operating system):
The features and roles you’ll need to install onto the Windows operating system you intend on installing Lync Server 2013 are listed in the Additional Software Requirements section of the deployment documentation:
http://technet.microsoft.com/en-us/library/gg398686.aspx
More information about setting up components such as IIS, the file server and certificates can be found in the Software Setup section:
http://technet.microsoft.com/en-us/library/jj204692.aspx
SQL Server Database Support:
The supported versions of Microsoft SQL server for Lync Server 2013 are the following:
Back-end database of a Front End pool, Archiving database, Monitoring database, persistent chat database, and persistent chat compliance database:
- Microsoft SQL Server 2008 R2 Enterprise database software (64-bit edition). Additionally running the latest service pack is recommended.
- Microsoft SQL Server 2008 R2 Standard (64-bit edition). Additionally running the latest service pack is recommended.
- Microsoft SQL Server 2012 Enterprise (64-bit edition). Additionally running the latest service pack is recommended.
- Microsoft SQL Server 2012 Standard (64-bit edition). Additionally running the latest service pack is recommended.
Standard Edition server database and local configuration store databases:
- Microsoft SQL Server 2012 Express (64-bit edition)
http://technet.microsoft.com/en-us/library/gg398990.aspx
Active Directory Requirements:
The Active Directory requirements can be found here:
http://technet.microsoft.com/en-us/library/gg398630.aspx
Ensure that your active directory contain only the following domain controllers:
- Windows Server 2012
- Windows Server 2008 R2 operating system
- Windows Server 2008 operating system
- Windows Server 2008 Enterprise 32-Bit
- 32-bit or 64-bit versions of the Windows Server 2003 R2 operating system
- 32-bit or 64-bit versions of the Windows Server 2003 operating system
Domain functional level must be either of the following:
- Windows Server 2008 R2
- Windows Server 2008
- Or at least Windows Server 2003
Forest functional level must be either of the following:
- Windows Server 2008 R2
- Windows Server 2008
- Or at least Windows Server 2003
http://technet.microsoft.com/en-us/library/gg412955.aspx
Server Collocation Requirements:
As with Lync Server 2010, you can collocate certain Lync Server 2013 roles on the same server. The following lists the support collocation scenarios:
The A/V Conferencing service, Mediation service, Monitoring, and Archiving are collocated on the Front End Server, but additional configuration is required to enable them. If you do not want to collocate the Mediation Server with the Front End Server, you can deploy it as a stand-alone Mediation Server on a separate computer.
You can collocate a trusted application server with the Front End Server.
The following server roles must each be deployed on a separate computer:
- Director
- Edge Server
- Mediation Server (if not collocated with the Front End Server)
- Office Web Apps Server
You can collocate each of the following databases on the same database server:
- Back-end database
- Monitoring database
- Archiving database
- Persistent Chat database
- Persistent Chat compliance database
The file share can be a separate server or can be collocated on the same server as any or all of the following:
- Database server, including the Back End Server of an Enterprise Edition Front End pool
- Archiving database
- Monitoring database
- Persistent Chat database
- Persistent Chat compliance database
http://technet.microsoft.com/en-us/library/gg398102.aspx
Migrating from Lync Server 2010 to Lync Server 2013:
Coexistence migration information from Lync Server 2010 to 2013 can be found here:
http://technet.microsoft.com/en-us/library/jj205369.aspx
Ensure you apply the latest updates for your legacy Lync Server 2010 environment:
http://technet.microsoft.com/en-us/library/jj204730.aspx
… as well as run the Run Best Practices Analyzer to ensure your legacy Lync Server 2010 is in good health and conform to best practices:
http://technet.microsoft.com/en-us/library/jj204694.aspx
More information about deploying a Lync Server 2013 pilot pool can be found here:
http://technet.microsoft.com/en-us/library/jj205367.aspx
Staging Servers and Install Prerequisites
For the purpose of this example, I’ll be deploying a new Lync Server 2013 enterprise pool into an existing Lync Server 2010 environment. I will leave roles such as Edge, Monitoring, Archiving, etc for separate blog posts so begin by staging the following 2 servers:
- Lync Server 2013 Enterprise Front-End server
- SQL Server for back-end database
I don’t readily have a Windows Server 2012 virtual machine template available so I’ll be using Windows Server 2008 R2 with SP1 installed.
**Note: make sure that your Lync Server 2010 environment is updated with the latest cumulative update package and in good health via items such as:
- Event Logs
- Lync Server 2010 Control Panel
Install Windows Roles and Features:
Rather than manually going through Server Manager to install the roles and features, the following PowerShell cmdlets can be used to automatically install all of them.
Import-Module ServerManager
Add-WindowsFeature Web-Server, Web-Static-Content, Web-Default-Doc, Web-Scripting-Tools, Web-Windows-Auth, Web-Asp-Net, Web-Log-Libraries, Web-Http-Tracing, Web-Stat-Compression, Web-Default-Doc, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Http-Errors, Web-Http-Logging, Web-Net-Ext, Web-Client-Auth, Web-Filtering, Web-Mgmt-Console, Web-Dyn-Compression, Web-Mgmt-Console, Desktop-Experience, RSAT-AD-TOOLS
**Note that whether you include RSAT-AD-TOOLS in the end is optional. I included it because I intend on performing the Active Directory preparation directly on the new Lync server.
Restart the server once the executation of the cmdlet completes.
Install Microsoft .NET Framework 4.5:
Proceed with downloading and installing Microsoft .NET Framework 4.5 from the following URL:
http://www.microsoft.com/en-us/download/details.aspx?id=30653
Note that the message prompt that the Lync install displays when you don’t have Microsoft .NET Framework 4.5 installed is:
http://go.microsoft.com/fwlink/?LinkID=264944
What I don’t like about these links is that they’re not active and therefore you can’t just click on it and once you hit the website, you have to read through the pile of text and find the properly link to download. With that being said, I suspect the contents in the go.microsoft.com links could possibly change so if you’re reading this blog post months down the road, it’s best to use the main link instead.
Install PowerShell 3.0:
Continue and PowerShell 3.0 from the following URL: http://www.microsoft.com/en-us/download/details.aspx?id=34595
There’s a list for 4 items for download and the way to determine which one you’re supposed install is actually noted at the bottom. Since we’re installing PowerShell 3.0 onto a Windows Server 2008 R2 SP1 server, proceed by downloading the following file:
WINDOWS6.1-KB2506143-x64.MSU
Install Windows Identity Foundation:
Continue and Windows Identity Foundation from the following URL: http://www.microsoft.com/en-us/download/details.aspx?id=17331
Windows6.1-KB974405-x64.msu
Launch Setup:
Launching the Setup.exe executable for the Lync Server 2013 binaries will automatically install Microsoft Visual C++ 2012 x64 Minimum Runtime – 11.0.50727 Package so don’t bother downloading it:
Install the Microsoft Visual C++ 2012 x64 Minimum Runtime – 11.0.50727 Package:
The setup wizard will be presented to you once the Microsoft Visual C++ 2012 x64 Minimum Runtime – 11.0.50727 Package is installed:
Proceed by through through the installation wizard:
Preparing Active Directory
Other than the 2013 text, everything looks pretty much the same as the 2010 install so proceed with clicking on the Prepare Active Directory link:
Prepare Schema:
Continue by clicking on the Run button under Prepare Schema to extend the Active Directory schema for Lync Server 2013:
Prepare Forest:
Once the schema has been prepped verify that the schema has been replicated and then proceed with preparing the forest:
Prepare Domain:
Once the forest has been prepped verify the global catalog has been replicated and then proceed with preparing the domain:
With the domain prep completed, you can proceed with adding users or groups to the Lync administrative groups:
… or if you already have Lync Server 2010 deployed in the environment, head back to the main screen to install the Topology Builder via Install Administrative Tools.
Build new Lync Server 2013 Topology
Install Lync Server 2013 Administrative Tools (Topology Builder):
Download Existing Topology:
Launch the Lync Server Topology Builder:
… and proceed with downloading the existing topology:
Save the downloaded topology as you usually do in Lync Server 2010:
Once the Topology Builder is launched proceed with expanding the nodes on the left and you will notice the familiar layout of Lync Server 2010:
Define new File Store:
Expand the nodes on the left then navigate to Shared Components –> File Stores, right click on the node and select New File Store…:
**Note that I am not including instructions on creating the actual share on the server so create the share and set the share permissions to Everyone with Full Control then lock it down with NTFS permissions if necessary.
Define new SQL Store:
Expand the nodes on the left then navigate to Shared Components –> SQL Server store, right click on the node and select New SQL Server Store…:
Enter the information for the new SQL Server Store:
Note that it doesn’t look like you can use another SQL server instance installed onto the same server hosting the Lync Server 2010 SQL Server store. See my previous post:
Unable to collocate Lync Server 2013 enterprise pool database with Lync Server 2010 on separate SQL instances
https://blog.terenceluk.com/2012/11/unable-to-collocate-lync-server-2013.html
Define new Office Web Apps Server:
The Office Web Apps Server is a new service that enable users to share and view PowerPoint presetantions during meetings with enhancements.
Expand the nodes on the left then navigate to Shared Components –> Office Web Apps Servers, right click on the node and select New Office Web Apps Server…:
Type in the FQDN of the Office Web Apps Server name and you’ll notice that the Office Web Apps Server discovery URL will automatically get filled in for you:
Create new Enterprise Edition Front End Pool:
Continue by right clicking on the Enterprise Edition Front End pools node under Lync Server 2013 to deploy a new pool:
Enter the FQDN for your new Lync Server 2013 pool (make sure it’s in the FQDN format):
Enter the FQDN of your first front-end server:
Select the features you would like to enable for the front-end server. For this demonstration, I will skip Enterprise Voice (collocate Mediation server role), Archiving and Monitoring roles:
Leave the Enable an Edge pool to be used by the media component of this Front End pool unchecked and click Next:
Click on the Next… button and select the new SQL Server store created earlier:
Click on the Next… button and select the new file store created earlier:
The External Base URL field is almost always wrong because the wizard simply puts in the old pool’s internal pool FQDN so change it to the existing external URL for the Lync Server 2010 pool:
Select the Office Web Apps Server created earlier:
Clicking on the Finish button will complete the creation of the new pool:
Proceed with publishing the new topology:
Once the topology publishing finished, review the logs if there are any errors or warnings. Errors are typically something that you should look into correcting immediately while warnings may not necessarily need immediate or attention at all. The screenshot above shows that the Creating Database has errors but reviewing the logs show the following:
Warning: Setting SQL Server Show Advanced Options to 1
Warning: Setting SQL Server Recover Interval to 5 mins
I’ve reviewed the descriptions for:
- SQL Server Show Advanced Options to 1
- Setting SQL Server Recover Interval to 5 mins
… and both of them appear to be settings the topology publishing task set for SQL databases so it probalby does not need any attention.
Deploying the Front-End Server
Install Local Configuration Store:
With the Central Management Store populated with the new topology, proceed by launching the Lync Server 2013 – Deployment Wizard on the front end server, click on the Install or Update Lync Server System link:
… then the Run button for Install Local Configuration Store:
Setup Lync Server Components:
Once the local configuration store has been installed, proceed with installing the Lync Server Components:
——————————————————————————————————————————————————————–
As of November 11, 2012, it doesn’t look like Windows Update includes the KB 2646886 hotfix because the installation of the Lync Components threw the following error even though no updates were available via Windows Update:
> Bootstrap-CsComputerLogging status to: C:Userstluk-adminAppDataLocalTemp2BootstrapFull-[2012_11_11][19_44_42].htmlChecking prerequisites for bootstrapper…Checking prerequisite WMIEnabled…prerequisite satisfied.Checking prerequisite NoBootstrapperOnBranchOfficeAppliance…prerequisite satisfied.Checking prerequisite SupportedOS…prerequisite satisfied.Checking prerequisite NoOtherVersionInstalled…prerequisite satisfied.Host name: svr-lync-02.domain.intDisabling unused roles…Executing PowerShell command: Disable-CSComputer -Confirm:$false -Verbose -Report “C:Userstluk-adminAppDataLocalTemp2Disable-CSComputer-[2012_11_11][19_45_07].html”Checking prerequisites for roles…Checking prerequisite SupportedOS…prerequisite satisfied.Checking prerequisite SupportedOSNoDC…prerequisite satisfied.Checking prerequisite SupportedSqlRtcLocal…prerequisite satisfied.Checking prerequisite WMIEnabled…prerequisite satisfied.Checking prerequisite NoOtherVersionInstalled…prerequisite satisfied.Checking prerequisite PowerShell…prerequisite satisfied.Checking prerequisite WindowsIdentityFoundation…prerequisite satisfied.Checking prerequisite SupportedServerOS…prerequisite satisfied.Checking prerequisite NoUnsupportedWinFab…prerequisite satisfied.Checking prerequisite SupportedSqlLyncLocal…prerequisite satisfied.Checking prerequisite IIS…prerequisite satisfied.Checking prerequisite IIS7Features…prerequisite satisfied.Checking prerequisite ASPNet…prerequisite satisfied.Checking prerequisite KB2646886Installed…missingChecking prerequisite BranchCacheBlock…prerequisite satisfied.Checking prerequisite WCF…prerequisite satisfied.Checking prerequisite WindowsMediaFoundation…prerequisite satisfied.Prerequisite not satisfied: Before you install Microsoft Lync Server 2013, you must install an update for Windows Server 2008 R2. For details about the updated, see Microsoft Knowledge Base article 2646886, “FIX: Heap corruption occurs when a module calls the InsertEntityBody method in IIS 7.5” at http://go.microsoft.com/fwlink/p/?linkid=3052&kbid=2646886.
So if you receive this error, proceed with downloading the hotfix from http://go.microsoft.com/fwlink/p/?linkid=3052&kbid=2646886
——————————————————————————————————————————————————————–
Request, Install and Assign Certificates:
Once the Lync Server components have been installed, proceed with requesting, installing and assigning certificates for the:
Default certificate:
- Server default
- Web services internal
- Web services external
OAuthTokenIssuer
- OAuthTokenIssuer
**Note that you can either create the certificate as exportable or not. I prefer to have an exportable certificate so I could back it up.
Start Services:
With the certificates issued and assigned, proceed with starting the services:
Check Service Status:
Every though the last step Service Status is listed as option, it’s always best to perform it anyways to ensure that all the services are listed as Started:
Checking for Updates:
Checking for updates is just as important as now is the best time to install updates:
Launch Lync Server 2013 Control Panel:
Prior to launching the Lync Server 2013 Control Panel, make sure you create a DNS record for your pool name or you may receive the following webpage errors:
Navigation to the webpage was canceled
This program cannot display the webpage
**Note: I’ve forgotten to create the DNS records a few times and noticed that I almost always have to rebooted the front-end server to get the page to load properly.
Another item that most administrators forget is that the Lync Server 2013 Control Panel uses Silverlight but what’s nice is that upon launching the control panel, you will get prompted to install it:
Proceed with selecting the new Lync Server 2013 pool:
Continue by associating your new Lync Server 2013 pool with the legacy Edge server (or else federation won’t work), then migrate a user over and being testing the pool’s functionalities ensuring that a migrated users can log in with their Lync Server 2010 client from the internal network or from external through the Edge server.
I will be writing separate posts for other roles and required configurations for the rest of the deployment in the following weeks.
Note that the following errors would be logged in the Lync Server event logs if you haven’t deployed the Office Web Apps Server:
Event ID: 41033
Office Web Apps Server (WAC) discovery failed, PowerPoint content is disabled.
Attempted Office Web Apps Server discovery Url: https://svr-webapps-01.domain.local/hosting/discovery/
Received error message: The remote name could not be resolved: ‘svr-webapps-01.domain.local’
The number of retries: 1686, since 11/11/2012 9:16:19 PM.
Cause: Office Web Apps Server may be unavailable or network connectivity may have been compromised.
Resolution:
Check HTTPS connectivity from this box to the Office Web Apps Server deployment using the discovery Url.
Please see the following post for instructions on how to deploy the Office Web Apps Server:
Deploying Office Web Apps Server for Lync Server 2013 Enterprise Pool https://blog.terenceluk.com/2012/11/deploying-office-web-apps-server-for.html