7

We are looking at rebuilding our small production running redundant servers with IIS, .Net 4, MSSqlServer 2003 setup.

The previous tri-server configuration evolved organically and has a lot of hand-configured pieces that sort-of mesh together but not in any complete way. Plus the deployment story is a bunch of unversioned PowerShell scripts that work most of the time. Same with configuration files, slightly different between production and development (and not in an automatically generated way). Same with logging, monitoring, etc.

I am curious if there is a consensus on how such things should be setup in a convention over configuration way to minimize system administration efforts.

In Ruby world, there seem to be consensus on VM images + Chief/Puppet + GitHub. Or services like EngineYard for external hosting. But I was not able to find similar advice for MS/.Net environment.

I am looking for low-cost solution, not an all-singing all-dancing enterprise software that would be an overkill for 4-6 VMs.

2 Answers2

3

Honestly, Group Policy is made for managed configuration, and can probably be leveraged for what you want. (It wasn't just invented for desktop management.) You can manage them with Chef/Puppet/CFEngine, but it seems to me that Windows is a second-class citizen in Chef.

Chef and Puppet are written with the *nix mindset of "everything is a file", and Windows is very seldom like that.

gWaldo
  • 11,887
  • 8
  • 41
  • 68
  • Cheff/Puppet/CFEngine(free anyway) do treat Windows as second hand, so might be too much of a stretch for Windows-only admin. I see Group Policy now supports PowerShell scripts, but how standardized is it? Is there a big community of recipes to say do .Net4 installation by typing one command line? Or would I have to reinvent the deployment script myself (exactly what I am hoping to avoid)? – Alexandre Rafalovitch Aug 27 '11 at 14:15
  • I'm not managing a Windows Server environment currently (but had for the previous 10 years), but if you have a script that runs on one machine, you should be able to add that to a policy. The one thing that Chef does easier than Group Policy is that you can add recipes to individual servers, where Group Policy gives the same idea, but you **have** to specify groups of machines (and people) to target. Searching for something like "run script via group policy" should get you going. – gWaldo Aug 27 '11 at 18:58
3

If you're running any vSphere license besides the free one, you can configure your Windows VM and use it as a template. vSphere will allow you to deploy from that template and apply customizations (such as setting the system name, configuring the IP settings, entering the product key).

You can read more about it here: http://vinf.net/2009/07/09/how-to-deploy-a-windows-2008-server-from-a-template-with-vsphere/

smassey
  • 696
  • 5
  • 13
  • That's for initial setup. What about for changes afterwards? – Alexandre Rafalovitch Aug 27 '11 at 14:02
  • I guess that is going to depend on what version of Windows Server you're running. If you're running Server 2008 R2, there is a built-in Powershell module for managing IIS. Otherwise, you're looking at WMI or VB Script for making changes. – smassey Aug 29 '11 at 02:37