At the beginning, I searched a means to deploy application for my two personal pc from a home server (based on freenas). My searches led me to the following products:
- OCS Inventory NG: it's a good choice for IT professional who manages thousands of PC, and an agent must be deployed on every PC.
- Active Directory GPO: you can do this with a Windows Server or a server with Samba configured in domain controller mode. The main constraint is that GPO accept only MSI package.
So I choose to develop my own deployment system built around two main module : the first one, named appdeploy, deploys application, the second one, named appdownload, checks and downloads applications' updates if any (or the full installation package).
The requirements for this project were:
- appdeploy must run on windows 7 without prerequisites (I.e. no agent must be prior installed). Theses implies that this modules must be written in Command shell or Windows Script Host.
- appdeploy must run from a network share (aka from a UNC path) or a removable disk (CD or DVD, USB stick...).
- appdeploy must work with any type of installation package (MSI package, EXE package or a classic distribution with files and a setup.exe).
- appdeploy must have pre install and post installation hook to customize the start menu or install additional packs (e.g. Firefox extension, VirtualBox Extension Pack, Tortoise Language Pack...)
This script is a public script. It launches the installer package of the standard application. See Usage description syntax for details about used syntax.
appdeploy [set]
set
is the set name, the script use a file named applist-[set].txt which
matching applist file format. all
is the default value.
0 no error
1 an error occurred while filtering application
2 invalid argument. An argument of the command line is not valid (see Usage)
The following environment variables affect the execution of appdeploy
:
Contain the path for installation package and the applist files.
Contain the mail address of the mail recipient (typically a system administrator)
Contain the mail address of the mail sender (typically machine mail address)
Contain the fully qualified name of the SMTP server to use
Contain the SMTP server’s port number to use
Contain the full path name of the current log file. All log entries for the current update transaction are write in this file.
Contain the full path name of the current warning log file. All warning messages for the current update transaction are write in this file.
Contain the full path name of the current summary log file. All summary messages for the current update transaction are write in this file.
Contain the full path name of the persistent log file. All messages for the current update transaction are write in this file.
Specify the scripts logging mode.
Specify if a mail containing the current appdeploy log messages will be sent (see _log2mail script).
Specify the maximum level of log entries written in log files (see UPDATE_LOGFILE and WARNING_LOGFILE).
This file was automatically generated by TiddlyWiki.