3

Our customer has solution that includes several products that cooperate with each other. When we update any part of the solution we have to provide administrator’s guide for every operating system (XP, Windows 7, Windows Server 2008 e.t.c.). Guide tells:

  • What services and processes should be stopped before update
  • What files should be backed up
  • What configuration keys should be updated
  • What programs/modules should be uninstalled
  • What programs/modules should be installed
  • How to check if update is successful
  • Recovery steps
  • e.t.c

Basically we put installation files in a network folder and provide powershell script that should be run on workstations customer wish to update. This script may be rather complex and may change dramatically from installation to installation.

I guess is there any platform to ease such distribution?

3
  • 1
    A properly designed installer will automatically take care of stopping and restarting any requisite services. What format installer are you using (msi, exe) and what products are you using to package it up? Apr 7, 2014 at 13:14
  • 1
    @TimBrigham, we have to run several 3'd party installators during update. We deal with Kofax (and it's customizations)
    – user149691
    Apr 7, 2014 at 13:35
  • Sorry about having to deal with Kofax :(
    – ewwhite
    Apr 7, 2014 at 15:55

3 Answers 3

0

There isn't any "magic bullet" which can handle these kinds of things for you. I'd be skeptical of anybody who tells you that there is.

I come from a background of using build scripts checked into a VCS, so my bias is probably going to show here.

I'll address a couple of items others have mentioned:

Windows Installer certainly sounds attractive at first blush, but it's not a "free lunch". If you opt to build Windows Installer packages you'll just have to encapsulate the dependencies and logic in your script into the installer package, possibly with a lot of ugliness like copious quantities of Custom Actions. In effect, you'd be using Windows Installer as a scripting environment with a bunch of built-in quirks and limitations.

If you use a configuration management system (Desired State Configuration, Puppet, etc), you're still going to have to model the dependencies and the logic. With a configuration management system I daresay you're going to bump into the limits of the platform's ability to describe your dependencies, at which point you'll need to supplement with scripts anyway.

I think you're started down the right path with your Powershell script. I'd comment the heck out of the script and I'd work very hard to build a single script (or, more likely, suite of smaller scripts that are called from a single central script) that can handle all your various installation scenarios. I'd use version control software to maintain these scripts. Inasmuch as is feasible for the products you're installing from opaque binary blobs, I'd build in test logic to validate that these installers are actually working.

1

Use a standard installer (.msi), this takes care of most things. Have a look at WiX for an open source platform to build the installer.

0

You may want to look at Puppet. I've used it to manage configuration of Unix based computers, but it also works with Windows OS.

http://www.puppetlabs.com

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .