Lately I had to automate the installation of quite a few inter-related system components for the creation of demo systems (usually in virtual machines). In my case those were a dedicated database, three server applications and various clients operating against those servers. The important part was that quite a few configuration settings had to be aligned across all these components. So I decided to externalize those settings into a common properties file and build wrappers around the original installers that would query that properties file.
Since this was a Windows-only exercise I decided to leverage the Nullsoft Installer System (NSIS) which is free and has a great community with loads of additional plugins. But for building my installers I still used Ant to achieve this automatically and therefore reproducibly. Other factors were
- Support for arbitrary number of components with quick and easy addition of new ones
- Wherever possible automate also the download of the original installers
- As “centralized” as possible, meaning that only component-specific aspects should be handled outside the main NSIS script
The result is a central NSIS script that includes component-specific details. Those are post-processing instructions and the original installers. Overall, it was worth the effort and provided a robust basis for other similar setup later on.