How to deploy applications to your Terminal Server
Repackaging and/or unattended?
The first question to consider when installing applications in silent mode is what method will be used to create this silent mode. In a lot of companies repackaging is used. With this method an application is recorded with the packaging tool. During the recording phase the normal installation is executed while simultaneously the package tool saves every change is made. A very well known manufacturer of packaging software is for example Wise.
The counterpart to the above option is installation via unattended options. Using this method the manufacturer or installation creator product delivers several parameters through the installation file. Using these parameters the application can be installed silently without installation dialogs.
Using the unattended method has some big advantages:
- The manufacturer supports the unattended method fully. There are manufacturers that do not support problems in their application when the application is repackaged.
- No additional software needs to be purchased.
- No additional training is required for the persons creating the unattended installations.
Of course repackaging has some advantages in comparison with unattended installation:
- Some packaging software has a DLL conflict database system within.
- All packages have the same format
- With repackaging mostly every application can be created in a silent installation
I prefer the unattended method the most, because of the guaranteed support you get from the manufacturer for creating the silent installation and normal operation questions. But some applications do not have unattended options in their setup, so sometimes you must use a repackaging tool to create a silent installation.
Therefore I recommend, and see, that in more and more organizations both methods are used. Logically in these situations you only use the repackaging tool to create silent installations and advanced options like conflict databases, a regression test will not be used (in other words, the biggest and most expensive versions are not required).
Creating the silent application
I always call the creation of a silent installation “scripting the application”, so personally I don’t differentiate between using the unattended method or the repackaging method.
Although it is very difficult to describe how to create an unattended installation or repackaged installation in detail, it is possible to describe the steps in the process from beginning to end.
Depending on your infrastructure you should define where the application should be installed. This can be done to define the answer for many questions. The first question in the list is if the application is capable of running on a Terminal Server. Some applications are just not capable because for example external hardware, special applications like programming software or CAD/CAM applications.
If the application(s) can be run on a Terminal Server the following questions should be answered to define on which Silo the applications should be installed.
- Is the application CPU and/or memory intensive?
- Does the application use the CPU unnecessarily on a regular basis?
- Does the application have conflicting DLLs or conflicts with another application?
- Does the application need another application to function (also for the end-user)?
- Does the application support another application?
- How often are updates normally released for the application?
- How many users are going to use the application?
- How often is the application being used by the end-users?
The combination of answers of these questions will help when making the decision of where to install the application. After this decision is made the real creation of the silent installation can start.
The first step in the process is to install the application manually. In this way you already know which information is needed during the installation. Also you can already check with tools like filemon, regmon and/or regshot where the application saves files and registry settings. Do not forget to place your Terminal Server in installation mode so you will be aware if Current User Keys and Values in the registry are set.
Information about the way to repackage applications is readily available in numerous articles and books, so I’m not going to write anything about that. But I will write some tips and tricks for the unattended method.
When creating silent installation using the unattended method there are three main steps for creation:
- The manufacturer has built in the possibility of an unattended installation of the application by using parameters. Mostly these parameters and an explanation on how to create the unattended installation are mentioned in the manual. Sometimes these options are only mentioned on their website, knowledgebase articles, or in their Forum. Contacting the manufacturer can help to get all the parameters.
- InstallShield installations. Often manufacturers use InstallShield to create a setup for their software. If that is the case, you can use the options within InstallShield to create an unattended installation. You should install the application once using the /r parameters. This records all installation information in a setup.iss file. This file should then be called during the other installations using the /s parameter behind the setup file for unattended installation on the production servers.
- MSI installations. Delivering application installation using MSI installations is becoming increasingly popular. Using the standard available executable in the Windows Operating System MSIEXEC MSI files can be run unattended. Via the MSIEXEC /? Command or the Knowledgebase article http://support.microsoft.com/default.aspx?scid=kb;en-us;227091 the parameters can be found.
After the unattended installation is created you can install the application silently on your Terminal Servers. But as described in the article Terminal Server Environment Basic Concepts, there are two parts to consider. The second part of the process is the configuration of the application. You should think of the machine registry setting (within HKLM) and/or configuration files. When using repackaging for creating a silent installation I advise keeping these kinds of configuration settings out of the installation. If changes are needed to this configuration later, they can be implemented easily.
The machine/computer process is now finished, which leads us to the next phase, the user configuration. When we installed the application manually we had already checked the so-called Shadow key. I suggest removing those settings out of the Shadow key and placing the settings in a login script or something similar. In the article Terminal Server Environment Basic Concepts I explained the reason behind this; please don’t forget to clean the shadow key after the silent installation. Also, lots of applications have the first time configuration questions like accepting the license agreement, choosing certain settings, tips and tricks screen and many more. You probably do not want your users to see all these questions and just want to provide them directly with a fully functional application. You should learn all these setting by starting the application yourself and monitoring with regshot which registry keys are changed (in 95% of the cases these settings are registry settings).
Also there are some good websites where application installers describe these kinds of settings, for example I really like http://www.appdeploy.com.
Deployment of the applications
Now the silent installations are ready the last step is deploying those installation to the target servers. The only way to guarantee that all servers are 100% identical is again the chronological order concept. There are lots of deployment products available. Ensure that your deployment product can guarantee that all silent application packages are installed in exactly the same order on every server. Some products use their internal IDs as a sort of order (like Altiris) instead of your self-created order, so be careful. Test and monitor the deployment first in your test environment. I had some good experiences with Altiris, RES Wisdom and VisionApp Management Suite, but there are definitely more products that will satisfy the need for chronological installation order.
To ensure the basic concepts, applications need to be installed via silent installations. This can be done using repackaging or unattended methods. The ways to create unattended installations are described including configuration of the environment for the machine/computer process. User configuration can be found in the Shadow key and on several resource sites dedicated to packaging. The silent installation should be deployed using a deployment tool which can handle chronological installation order.