Windows Application Deployment

The Windows Deployment Scripting Language provides a mechanism by which programs can be executed in conjunction with file updating on Windows Engines. This can be used for such purposes as registering COM DLLs and .NET assemblies, running Microsoft Installer packages, and so on. It runs an installation command when the script is added, and when any dependent files are modified. It can also run an uninstallation command when the script is removed.

A deployment script is a file named dsinstall.conf. This is a reserved filename, and the Engine Daemon interprets any file with this name as a deployment script. The script is a properties file, with name and value pairs that govern the command execution.

The script is placed, with associated files, in its own subdirectory of a Grid Library. This is referred to as the installation directory. In situations where a remote application installation must take place when the Engine is first started, it can be packaged in a Super Grid Library.

The following properties are provided:

Deployment Script Properties

Property

Description

install_cmd

The installation command. The command must be in the current directory; you can also specify the full path to a command. This command is run when the dsinstall.conf file is added, modified, and when any dependency is modified.

Note that the Engine’s PATH environment variable is not set within the installation command. You must set the path to use some commands, such as ping or find.

workdir

Working directory from which the commands are launched. The directory is relative to the installation directory.

uninstall_cmd

Optional. The uninstall command. This is executed when the script is deleted, or prior to subsequent runs of the install command if uninstall_first is true. Supporting files for the uninstall script might be deleted along with the script; the command is executed prior to local deletion of the files. Typically an uninstall is performed by simply removing the entire installation directory.

Note that the path is not set within the uninstall command. You must set the path to use some commands, such as ping or find.

waittime

Number of seconds to wait for the install/uninstall command to finish. The default is 30 seconds. If this time is exceeded, the process running the command is killed.

uninstall_first

Optional. If true, the uninstall command always runs prior to the install command, except for the first time the install command is run. This is for situations in which you need to uninstall software prior to reinstallation.

success_exit_codes

Optional. Comma-delimited list of exit code values that indicate successful command execution. If the exit code does not match any value, an error logs with the failure code, and the next time the Daemon restarts it retries the installation. If this property is not set, exit codes are ignored.

disable_on_fail

If an Engine Daemon disables itself on the failure of an install. The default is false if not specified in the conf file. When the value is true, the Engine Daemon disables itself if the installation returned exit code is not in the success exit codes.

The : and \ characters must be escaped with a backslash (\) character in the dsinstall.conf file. Also, you must not rename the dsinstall.conf file.

The following code is an example of a script that installs a Microsoft Installer package:

workdir=.
waittime=30
uninstall_first=true
install_cmd=install.bat
uninstall_cmd=uninstall.bat
success_exit_codes=0
install.bat:
%SystemRoot%\system32\msiexec /q /i mypackage.msi ALLUSERS=1
uninstall.bat:
%SystemRoot%\system32\msiexec /q /x mypackage.msi ALLUSERS=1

These three files, plus the mypackage.msi file, are all placed in a Grid Library. Note that the uninstall_first property is used to uninstall the previous version of the software whenever the package is changed. To uninstall the software, simply undeploy the Grid Library; the uninstallation is performed prior to deleting the files.