I’m really getting into the scripted SharePoint 2010 install hosted at codeplex. It’s great because whenever something goes wrong with the config and install process, I can roll the machine back and start clean, instead of carrying forward every bug. This is very important to me as the 2007 instances that we support at the moment are what we developers call “a bloody mess”.
The project started on SharePoint 2003, got upgraded to 2007 and a bunch of custom web parts were made to duplicate the existing functionality. It wouldn’t do to have an application that didn’t cost more, be less capable and have more bugs than the off-the-shelf product.
So this 2010 project is a fresh start and I wanted to make sure that this instance was rock-solid and not as spotty as some of my earlier attempts.
The trouble is that there’s more than one path to walk when running up a new instance. At its most basic, SharePoint can be installed on your workstation, with the retarded SQL Server embedded. At its most complex you have a least-privileges install, which is best-practice and nice and secure. Actually if you’re installing SharePoint to host lots of isolated customers (tenants) it’s more complex, but we don’t have to worry about that.
Once your binaries are installed, you’re given the option of running the config wizard. The wizard is fine for your dev machine but will really mess up a production environment. The trouble is that the wizard starts a bunch of services and so on that you can’t access via Central Admin, so to make a proper instance you need to get into Powershell.
Since we’re in Powershell and we’re probably going to fluff the first few goes at installing the instance one may as well script the steps. Luckily, the folks over at AustoSPInstaller have already done all the hard work.
What the script will do is create a fairly typical SharePoint 2010 instance and, most importantly for me, configure and start the thorny User Profile Synchronisation (UPS) service.
One of the best things is that you can run the script many times without it breaking your existing instance. Got an error when installing a service? Fix it and run the script again.
I’ve made some extensions to help automate the config — the script will get you to the point where everything exists but you need to configure it to make it work in your environment. What I’d like, ideally, is a script that would do the install and all the config, so that I have a known, properly configured instance that I can reproduce exactly and quickly.
I’ll write a bit more and give more detail in a future post.