Skip to end of metadata
Go to start of metadata


The Batch Installer solution is available for the installation and update of the JobScheduler Universal Agent. It allows installation of any number of Agents on multiple servers across a range of environments.

Article Scope

A general description of the installation of the JobScheduler Universal Agent can be found in the JobScheduler Universal Agent - Installation & Operation article.

In addition, a number of "How to ..." articles are available describing the use of the Batch Installer in different environments. These are linked from the JobScheduler Universal Agent - Batch Installation and Update of Agents article.

This article contains reference information for users seeking more detailed information than provided in the batch installation in different environments articles.

Feature Availability


The JobScheduler Universal Agent Batch Installer is available with  JITL-214 - Batch installer for JobScheduler Universal Agent Released

Universal Agent Batch Installer Components

The Batch Installer is operated by a JobScheduler Master that:

  • connects to the Servers that the Agents are to be installed on and
  • executes the required Agent installations.

The Batch Installer application has two main components:

  • a JobScheduler AgentBatchInstaller job and
  • a JobScheduler universal_agent_installer job chain.

In addition, two XML files are needed for the application:

  • batch_installer_config_file.xml and 
  • yade_agent_batch_installer_settings.xml 

The AgentBatchInstaller job is responsible for creating the JobScheduler orders for the job chain. Each of these orders is named according to the pattern <host>:<port> to convey the host and port of the server where each Agent is to be installed. 

The Universal Agent Batch Installer Job Chain

The universal_agent_installer job chain has four job nodes configured in series as shown in the code block and diagram below:

Job Chain: universal_agent_installer.job_chain.xml

The configuration of the universal_agent_installer.job_chain.xml file


The individual nodes in the job chain have the following functions:

  • CheckPreRequisite
    • Check for the correct Java version
    • Check whether a JobScheduler Universal Agent already has been installed.
      • If yes, then the Installer:
        • shuts down any instances that are possibly running
        • removes the installation
  • Sync: Wait until all prerequisites have been checked and all instances shut down.
  • TransferInstallationSetup: Transfer the installer files to the host
    • Before the transfer starts, the preprocessor will create the instance start script from the template jobscheduler_agent_instance_script.txt
    • The files that are to be transfered are specified with the <globals><transfer><file_spec=".*\.(sh|gz)$"> configuration element

      • This regular expression causes the following files to be transfered:
        • the JobScheduler Universal Agent installer files: jobscheduler_unix_universal_agent.<version>.tar.gz
        • the instance start script: jobscheduler_agent_<port>.sh
        • the installation script:
  • PerformInstall: Start the installation using SSH.
    • The step before transfered installation script will be executed
    • The installation script installs and starts the JobScheduler Universal Agent
    • Finally the post-processing commands will be executed
      • The post-processing commands are specified with the <installation><postprocessing><command> element
      • Three commands will be executed
        • if you require additional commands, please add the call in the PerformInstall job
      • The default commands set up the autostart for JobScheduler Universal Agent on a Linux server (Ubuntu distribution)
        • echo ${ssh.sudo_password} | sudo -S cp ${install_path}/bin/ /etc/init.d/jobscheduler
        • echo ${ssh.sudo_password} | sudo -S update-rc.d jobscheduler defaults

Job Parameters

All jobs have access to the following parameters. These parameters are used for the JobScheduler Universal Agent instance start script.


<job chain>_required_orders
The number of orders that have been created where job_chain is the value of the parameter installation_job_chain in the job AgentBatchInstaller 
The IP address of the JobScheduler Universal Agents host. If no value is specified, the value from the paramter host in the ssh section will be used.installation/agent_options/scheduler_ip_address
The port of the JobScheduler Universal Agent. Default=4445installation/agent_options/scheduler_http_port

will be set to install_path + "/jobscheduler_agent"

Not available in XML
The SSH IP address of the JobScheduler Universal Agents hostinstallation/ssh/host
The SSH port of the JobScheduler Universal Agentinstallation/ssh/port
The SSH user of the JobScheduler Universal Agentinstallation/ssh/user
The SSH authentication method of the JobScheduler Universal Agentinstallation/ssh/auth_method
The SSH authentication file of the JobScheduler Universal Agentinstallation/ssh/auth_file
The password for the SSH userinstallation/ssh/password
The sudo password for the SSH userinstallation/ssh/sudo_password
The folder to which the JobScheduler Universal Agent will be installedinstallation/install_path

Job: TransferInstallationSetup

This job uses the YADE JITL job to transfer the installer files to the host.

More detailed explanations of the parameters are available with the YADE - Documentation.

It is recommended that the YADE settings file is specified with the <globals> element and that the default profile name <host>:<port> is used. The <installation><transfer> element is not then required for the installer configuration file.

the file with the profiles, one for each JobScheduler Universal Agentinstallation/transfer/settings
the name of the profile for the current installation. Default=<host>:<port>installation/transfer/profile
a regular expression that defines the set of files that should be transferedinstallation/transfer/file_spec
the host to which the files should be transferedinstallation/transfer/target/host
the port according to the given protocol, e.g. 21 for the FTP protocolinstallation/transfer/target/port
the protocol with which the installation files will be transfered (FTP, SFTP, file, local)installation/transfer/target/protocol
the user (if required by the protocol) with which the installation files will be transferedinstallation/transfer/target/user
the password (if required by the protocol) with which the installation files will be transferedinstallation/transfer/target/password
the location that the files will be copied toinstallation/transfer/target/dir
the authentication method should the SSH protocol be usedinstallation/transfer/target/auth_method
the authentication file should the the SSH protocol be used and the target_ssh_auth_method parameter be used with the value publickeyinstallation/transfer/target/auth_file
the host from which the installation files should be transferedinstallation/transfer/source/host
the port according to the given protocol (e.g. 21 when protocol is ftp)installation/transfer/source/port
the protocol with which the source will be transferred (ftp, sftp, file, local)installation/transfer/source/protocol
the user (if the protocol needs one) with which the source will be transferredinstallation/transfer/source/user
the password (if the protocol needs one) with which the source will be transferredinstallation/transfer/source/password
the location from where the files will be copiedinstallation/transfer/source/dir
the authentication method if the protocol is ssh.installation/transfer/source/auth_method
the authentication file if the protocol is ssh and auth_method is publickeyinstallation/transfer/source/auth_file

Job: PerformInstall

More detailed explanations of the parameters are available with the JITL SSH job documentation

n = 0...  The commands for the post-processing, e.g. enabling the autostart of the Universal Agentinstallation/postprocessing/command
The number of commands specified 

Starting the update/installation

The update/installation procedure is started by running the AgentBatchInstaller job, which is described in the next section.

The AgentBatchInstaller Job

The job AgentBatchInstaller reads the installer configuration file and creates orders for each element <installation>.

The element <installation> defines the source and the target of the installer files, the port for the JobScheduler Universal Agent and the SSH connection parameters. Please note:

  • You can define defaults for all elements in the <globals> element.
  • You can use variables for values e.g. ${}.
  • It is recommended that you specify the name of the YADE settings file in the <globals> element and use the default profile name as shown in the example Configuration File below. This will mean that it is not necessary to define <installation><transfer> elements.

Parameters for the AgentBatchInstaller Job

The XML file that contains all parameters for the batch installationc:\batch\batchinstall.xml
A host name if only one order should be created that matches the given hostmyAgent
A port if only one order should be created that matches the given host


The name of the job chain for which the orders should be created/batch_install_universal_agent/universal_agent_installer

If true then an order for all <instances> will be created.

If false then an order for <instances> that do not have the last_run attribute will be created


Customizing the Installation Process

The installation process can be customized as follows.

  • The scripts in the CheckPreRequisite and PerformInstall SSH jobs can be modified.
    • Use this if you want to check other prerequisites or execute additional commands either before or after the installation.
  • The installation script can be modified.
  • The template for the jobscheduler_agent_instance_script.txt start script for the Agent instances can be modified.

Checking Prerequisites

The CheckPreRequisite job will check the Java version, shut down any JobScheduler Universal Agent that may be running and remove the lib folder from an existing installation.

 Expand source

Performing the Installation

The PerformInstall job calls the installation script and executes the commands specified with the <postprocessing> element.

 Expand source

The Installation Script

The installation script will unzip the Agent installation file and start the JobScheduler Universal Agent.

The Agent Installation Script  Expand source

The Installer Configuration File

The installer configuration file contains an <installation> element for each JobScheduler Universal Agent instance.

The following code block shows a minimal example for the installer configuration file:

A Simple Example Agent Installation File


The <globals> element is used to specify values that are used for all installation items. The items that are specific for an individual installation will overwrite the global values. An installation item is required for each Agent. You can use substitution in the values of the elements.

Using the XML Editor to Configure Files

Configuring complex XML files with a text editor is often a tedious and error-prone procedure. To get around this, we recommend that you use our XML Editor to manage the configuration files required for the Batch Installer. The XML Editor automatically validates configuration files and therefore reduces the possibility of configuration errors. 

Find more details from our XML Editor article.

  • After downloading the XML Editor, extract the zip file, then start the "sos.xml.editor.exe" file. (The XML Editor runs on Windows systems and does not need to be installed.)
  • Open your installer configuration file in the Editor and assign the XSD scheduler_universal_agent_installations.xsd schema.

Managing the YADE file transfer profiles

Each installation makes use of a profile in the YADE settings file. The default profile name is <host>:<port> where:

  • <host> is substituted with the value from the element <installation><agent_option><scheduler_ip_address> and
  • <port> is substituted with the value from the element <installation><agent_option><scheduler_http_port>
  1. Specify the name of the YADE settings file with the <globals><settings> element.
  2. Open the YADE settings file or create a new one.
  3. Assign the XSD Schema
  4. Add a <ProtocolFragments> element and nodes for each host that you want to install the JobScheduler Universal Agent for.
  5. Add a <Profile> element and nodes for each host you want install the JobScheduler Universal Agent for.
  6. The default profile_id is <host>:<port>. If you do not use the default then you have to specify the profile name in the installer configuration file.

Change Management References - Batch Installation