And so it begins. As promised, I plan to chronicle in detail my journey through deploying Office Communications Server 2007. The first several days will be filled with deploying supporting infrastructure. We have made the decision to cut over from a separate internal domain name to a domain name that aligns with our external e-mail address domain and what will be our SIP domain (extendhealth.com). All times are in MST.
11:50 AM : Current State
I should probably start by detailing my starting environment. As I said above, we are cutting over to a new domain. As such, we have a completely clean domain to work with in a brand new forest. The new domain is called extendhealth.com. I haven’t done anything to the domain outside of creating a user account for installation. The user account is a domain, enterprise, and schema admin in anticipation of the OCS deployment (where I’ll need rights from all three groups). In general, that’s not the recommended action. Various tasks should be delegated to different personnel, and the permissions should be locked down much more tightly than they currently are in this domain.
The domain controller is running Windows Server 2008 Standard x64 (RTM). It is up-to-date with all patches. The domain controller is also virtualizing four virtual machines (VM) at this point, three of which will go offline shortly. Two of the machines are an enterprise root certification authority (CA) and a policy server for the public key infrastructure (PKI). Both of these machines will be taken offline and only be brought online when the issuing CAs need to have their certificates renewed. [Side note: I knew quite a bit about setting up a PKI before starting this process, but am referencing Brian Komar's Windows Server 2008 PKI and Certificate Security for any questions I have.] The PKI is currently pending a private OID request from the IANA. This will allow us to use certificates in a manner that caters to external publishing of those certificates. The certificates will not be used for public certificate chains - we have a wildcard certificate for that - but the official OID makes it easier to publish certificate policies and have them accepted by other parties.
The other machine that will go offline shortly is a temporary database server running SQL Server 2008 x64 February CTP. When the next CTP comes out, we will install a database cluster and move our databases to the cluster. In case I need to reference it, the name of this server is currently dbcluster1 (even though it’s not clustered). The SQL Server install is complete and has all features installed. I used a service account with a 64-character password generated by an online password generator. Because these passwords are so random, we actually store them in a database that is particularly locked down. Only one or two people in our entire organization have access to this database.
12:07 PM : Configuration Manager Intro
I’m currently looking at the pre-validation screen for System Center Configuration Manager 2007. Configuration Manager is the fourth virtual machine (the only one that won’t go offline) on the domain controller. I’ve allocated four processors and eight gigs of RAM for this server, which is currently named mgr1. The Configuration Manager installation isn’t related to OCS; it’s more of a general infrastructure setup that I want to get out of the way. We will be using Configuration Manager to deploy operating systems and updates. I picked up a book on Configuration Manager the other day at the Microsoft Company Store. (I was up in Redmond for the mid-sized market CIO summit.) The plan is to set up very simple deployment of Configuration Manager before deploying OCS. I have to deploy operating systems all along the way, so there’s no telling how much time it will actually take. Configuration Manager should facilitate the deployment of those operating systems and their updates. My naive estimate would be that it will take today and tomorrow to install and play with Configuration Manager, and then deployment of OCS will start Wednesday. I feel very well prepared on my OCS deployment. Configuration Manger scares me, however. The deployment doesn’t seem especially streamlined, meaning I may make a significant mistake and have to redeploy. We’ll see how things actually turn out.
12:13 PM : Configuration Manager Pre-validation Run 1
I haven’t done anything at all to this server (other than updates, joining to the domain, and enabling Remote Desktop). It’s listing two warnings (I haven’t run the schema extensions and I don’t have the WSUS SDK) and several errors related to IIS, BITS, and WebDAV not being installed/running. The only error that actually surprises me is the SQL Server sysadmin rights error. Aside from that, I’m going to fix the other errors before looking into that one.
12:22 PM : Fixing Validation Errors
I installed a default installation of the IIS and Application Server Roles, and am downloading/installing Windows Software Update Services (WSUS) 3.0 SP1 from http://www.microsoft.com/downloads/details.aspx?FamilyId=F87B4C5E-4161-48AF-9FF8-A96993C688DF&displaylang=en. I’m also downloading and installing the 64-bit version of WebDAV for IIS7. Last but not least, I’m deciding whether or not I need to extend the Active Directory schema by reading this article.
12:34 PM : Schema Extensions and WSUS
I’ve decided to extend the schema per Microsoft’s recommendation and am adding some functionality to IIS per WSUS installation requirements in the ReadMe. This is what I need to verify is enabled/installed in IIS:
Windows Authentication
Static Content
ASP.NET
6.0 Management Compatibility
6.0 IIS Metabase Compatibility
I also noticed the BITS Server Extensions wasn’t enabled when I went into the Features part of Windows Server 2008, so I enabled them. After installing those pieces, WSUS still alerts me that I don’t have the Microsoft Report Viewer 2005 Redistributable installed, but I don’t care about that until I need it.
12:55 PM : Installing and Updating WSUS
Still working on installing WSUS. I had to provision a drive for updates on our SAN, which took a bit, and I’ve worked through all the other issues that I know of. The installer is currently running.
1:26 PM : Lunch
Frustrated. WSUS installed successfully and BITS and WebDAV certainly seem to be installed, but the Prerequisite Checker doesn’t seem to see them. Rebooting and breaking for lunch.
2:02 PM : Back to Work
No change on reboot.
2:19 PM : Success!
Extended the Active Directory schema using ExtADSchema.exe in SMSSETUP/I386. Installed a couple of additional IIS components (WMI compatibility, console) that cleared up the errors regarding BITS and WebDAV. All systems are go at this point, but I’m a bit leery of what will be installed on dbcluster1 (my temporary SQL Server). I had to turn off the firewall to get all checks to pass. I’ll re-enable it after the install is complete, but having to turn it off to get the Prerequisite Checker to work doesn’t seem like a good sign.
2:22 PM : Configuration Manager Installation
Step by step:
- Selected “Install a Configuration Manager site server”
- Agreed to license terms
- Selected “Custom settings” (largely because the book recommends it)
- Selected “Primary site” since this is my first (and only) site
- Agreed to Customer Experience Improvement Program - I want Microsoft to improve installation environment awareness
- Product key was read-only
- Left default path (C:\Program Files (x86)\Microsoft Configuration Manager)
- Entered site code (DC1) and name
- Chose “Configuration Manager Mixed Mode”*
- Added NAP to selected client agents
- Specified SQL Server (dbcluster1) and database (sccm2007_dc1)
- Left default location (mgr1) for SMS provider - since the database will eventually be on a cluster, I can’t install the SMS provider there
- Left defaults for management point (install a management point on mgr1)
- Left defaults for port settings (HTTP/80 since I selected Mixed Mode)
- Allowed checking for updated prerequisite components
- Specified a download path for prerequisite components
2:33 PM : Settings Complete
After downloading a number of unnecessary prerequisites (multiple languages for Windows XP and Server 2003, neither of which are running), settings are complete and installation is ready to begin. Installer, however, complains that the machine account for mgr1 does not have admin privileges on the SQL Server.
2:36 PM : Settings Complete, Take 2
Added computer account for mgr1 to the Administrators group on dbcluster1. Prerequisite check has passed. Install began at 2:37 PM.
2:40 PM : Fatal Error
Fatal errors during database initialization. Not sure what that means since it created the database and tables. Some tables are also populated. (I looked at dbo.Agents.) Great. I have a message that says: Setup has detected an incomplete primary site installation on this computer. You must uninstall the incomplete installation before continuing. Here we go.
2:48 PM : Fatal Error, Take 2
Again with the fatal error. Log (C:\ConfigMgrSetup.log) says: <05-12-2008 14:38:58> ***SqlError: [42000][650][Microsoft][ODBC SQL Server Driver][SQL Server]You can only specify the READPAST lock in the READ COMMITTED (if not based on row versioning) or REPEATABLE READ isolation levels. : sp_SetupSDMPackage
Googling it.
2:52 PM : Not Good
https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=329707
Starting over with a SQL Server 2005 SP2 database. Back in a couple of hours.
5:24 PM : A New Error
After installing SQL Server 2005 as the SQL2005 instance and trying to bind it to the standard SQL port (1433), I couldn’t get the Configuration Manager installer to see the instance, so I uninstalled both SQL 2008 and SQL 2005, and then reinstalled SQL 2005 and SP2 for the second time today. That means the bulk of my time today has been spent installing and uninstalling SQL Server. I’m now on to a new error: the error message says “Setup failed to install SMS Provider.” Logs give me the following errors:
<05-12-2008 17:24:14> CompileMOFFile: Failed to compile MOF C:\Program Files (x86)\Microsoft Configuration Manager\bin\i386\smsRprt.mof, error -1
<05-12-2008 17:24:14> Setup cannot compile MOF file C:\Program Files (x86)\Microsoft Configuration Manager\bin\i386\smsRprt.mof. Do you want to continue?
<05-12-2008 17:24:14> Setup failed to install SMS Provider. For more information about this error, see Microsoft Knowledge Base at http://microsoft.com or contact Microsoft Technical Support for further assistance.
Other .mof files apparently compiles successfully before this one. Back to Google.
6:28 PM : Finished?
I’ve finally made it through the wizard (it only took most of the day). I have some pretty serious complaints. The first would be that things like extending the schema should be part of the wizard. The second was the problem I just spent an hour on: Kerberos issues. I did eventually find my answer at http://myitforum.com/cs2/blogs/rcrumbaker/archive/2007/10/12/system-center-configuration-management-with-remote-sql-installations.aspx. That happens to be the clearest explanation of a couple of really complex issues - SPNs and delegation. We’ve had a ticket open with Microsoft for over 18 months regarding a particular Kerberos issue and have had many, many people unsuccessfully try to fix the issue. Anyway, I had to set up two SPNs, one each for the NETBIOS and FQDNs of dbcluster1. The commands I ran (from the domain controller) were:
- setspn -A MSSQLSvc/dbcluster1.extendhealth.com:1433 extendhealth\sqlservice
- setspn -A MSSQLSvc/dbcluster1:1433 extendhealth\sqlservice
- setspn -l extendhealth\sqlservice
Two notes: first, the last command runs setspn in “list” mode, so that you don’t have to run adsiedit.msc. Don’t get me wrong, I actually think adsiedit.msc is much better (and faster) at editing SPNs - but I thought I didn’t have it available, which brings me to my second note. Setspn is available from the command line on Windows Server 2008 domain controllers (more accurately, computers with the AD DS role installed). Adsiedit is also apparently available there, but doesn’t bind to your directory root by default.
It seems to me that the Prerequisite Checker should have caught the problem if the SPNs weren’t configured properly. Whining aside, I did make it the rest of the way through the wizard and only one thing had a red X by it: the management point. After reviewing the log, it seems that just the monitoring of the management point failed, and when I open the console everything seems to be functional. I think I’ll leave it at this point (when I can be optimistic) and pick it up again tomorrow.