Environment
This article describes the use of the JobScheduler Universal Agent Batch Installer in a heterogeneous environment. We define a heterogeneous environment as one in which a number of JobScheduler Agents will be installed according to different prerequisites:
- A JobScheduler Master is up and running.
- The Agent installations are to be performed on any number of servers that do not have to have the same operating system. One Agent is to be installed per server.
- The Agents will be operated with different users, listening ports and installation paths.
The Batch Installer supports:
- First Installation: an Agent has not yet been installed on the server.
- Update Installation: an Agent has already been installed and may be up and running.
The Batch Installer is operated by a JobScheduler Master that: The Batch Installer application has two main components: In addition, two XML files are needed for the application: The The The individual nodes in the job chain have the following functions: The files that are to be transfered are specified with the <globals><transfer><file_spec=".*\.(sh|gz)$"> configuration element The following steps have to be carried out. Files can be downloaded from http://www.sos-berlin.com/jobscheduler-downloads The Batch Installer Application
AgentBatchInstaller
job anduniversal_agent_installer
job chain.batch_installer_config_file.xml
and yade_agent_batch_installer_settings.xml
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. universal_agent_installer
job chain has four job nodes configured in series as follows:CheckPreRequisite
Sync:
Waits until all prerequisites have been checked and all instances shut down.TransferInstallationSetup
: Transfers the installer files to the hostjobscheduler_agent_instance_script.txt
jobscheduler_unix_universal_agent.<version>.tar.gz
jobscheduler_agent_<port>.sh
jobscheduler_universal_agent_install.sh
PerformInstall
: Starts the installation using SSH.<installation><postprocessing><command> element
PerformInstall
jobecho ${ssh.sudo_password} | sudo -S cp ${install_path}/bin/jobscheduler_agent.sh /etc/init.d/jobscheduler
echo ${ssh.sudo_password} | sudo -S update-rc.d jobscheduler defaults
Download
config/live/batch_installer_agent
folder, with the jobs and job chains. Extract these files to the the live
folder of the JobScheduler Master: SCHEDULER_DATA/config/live
.config/batch_installer
folder with the configuration files for the Batch Installer. Extract these files to the config
directory of the JobScheduler Master: SCHEDULER_DATA
/config
.SCHEDULER_DATA/config/
batch_installer
folder.config/live/batch_installer_agent
folder with the jobs and job chains. Extract these files to the live
folder of the JobScheduler Master SCHEDULER_DATA/config/live
.config/batch_installer
folder with the configuration files for the Batch Installer. Extract these files to the JobScheduler configuration directory SCHEDULER_DATA/config
.SCHEDULER_DATA/config/
batch_installer
.
Configuration
XML 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. See the Using the XML Editor chapter below for more detailed information about using the XML Editor.
- After downloading the XML Editor, extract the contents of the zip file to a convenient folder (an installation routine is not required) and start the
sos.xml.editor.exe
program. - Open your
yade_agent_batch_installer_settings.xml
YADE configurationconfig/batch_installer
folder and assign the XSD schema - Open your
batch_installer_config_file.xml
configuration file in the XML Editor and assign thescheduler_universal_agent_installations.xsd
schema: both files are located in theconfig/batch_installer
folder. See the Batch Installer Configuration File chapter below for instructions on how to configure the Batch Installer configuration file.
Hints
- The XML Editor is available for Windows.
- YADE is an Open Source file transfer solution for FTP, SFTP, FTPS, WebDAV and other protocols. Concretely, it will be used here for transferring the following files from the JobScheduler Master to the Agent servers:
- JobScheduler Universal Agent installation files:
jobscheduler_unix_universal_agent.<version>.tar.gz
- Start script for an Agent instance:
jobscheduler_agent_<port>.sh
- Installation script:
jobscheduler_universal_agent_install.sh
- JobScheduler Universal Agent installation files:
- For more information about YADE, see the YADE product site.
JobScheduler Jobs
Carry out the following once the job and job chain have been extracted to the live
folder of your JobScheduler Master:
AgentBatchInstaller
job: adjust the parameter values for theAgentBatchInstaller
job in your JobScheduler Master.Set the
installation_definition_file
job parameter to point to the Batch Installer configuration file.
Installation of the Agents
The Agents can be installed after the XML configuration files and JobScheduler jobs have been configured. Start a task for the AgentBatchInstaller
job as follows:
- Open a JobScheduler Operating Center (JOC) browser window for the JobScheduler master.
- Go on the "Jobs" Window and open the "batch_installer_universal_agent" folder.
- Right click on the job to open the context menu.
- Select the
Start task immediately
operation. - This job will create the appropriate JobScheduler orders as explained in the chapter Batch Installer Application.
Example: Installation of two Agents
The following example describes the installation of two JobScheduler Universal Agents on separate servers - that is, one JobScheduler Universal Agent will be installed per Server. First of all, the YADE configuration file for the file transfer will be specified (in XML format), it will then be converted to the YADE settings file format (.ini
) and finally the Batch Installer configuration file will be specified.
YADE Configuration File for File Transfer
We assume that you have opened the yade_agent_batch_installer_settings.xml
YADE configuration file in the XML Editor and assigned the http://www.sos-berlin.com/schema/yade/YADE_configuration_v1.0.xsd
XSD schema.
A separate profile in the YADE configuration file is required for each Agent installation. The default profile name is <host>:<port>
where:
<host>
will be substituted with the value from the element<installation><agent_option><scheduler_ip_address>
<port>
will be substituted with the value from the element<installation><agent_option><scheduler_http_port>
Now carry out the following steps:
- Add a
<ProtocolFragments>
element and nodes for each host that you want to install the Agent for. The best way to add another<ProtocolFragments>
element using the XML Editor is copying the element and pasting it to the parent element - in this case<Fragments>
. - Add a
<Profile>
element and nodes for each host that you want to install the Agent for. The best way to add another<Profile>
element using the XML Editor is copying the element and pasting it to the parent element - here<Profiles>
. - The default
profile_id
is<host>:<port>
. If you do not use the default then you have to specify the profile name in the Batch Installer configuration file.
The contents of the YADE configuration file for the example is listed in the following code block:
YADE Settings File for File Transfer
Note that the file shown above is an in the YADE XML file format and that YADE versions 1.10 and older require a .ini
file to perform the transfer that is specified in the <globals><install_path><transfer><settings>
element in the Batch Installer configuration file.
- We recommended that you use the XML Editor to convert configuration files from XML to the
.ini
format (see the XML Editor for converting YADE configuration files (XML) into YADE setting files (.ini) section below for more information). - The following example shows as an example a
.ini
file that has been converted from the XML file above. You can download the example using this link: yade_agent_batch_installer_settings.ini.
Batch Installer Configuration File
We assume that you have opened the Batch Installer configuration file batch_installer_config_file.xml
in the XML Editor and assigned the scheduler_universal_agent_installations.xsd
XSD schema.
The Batch Installer configuration file contains an <installation>
element for each Agent instance. In addition, the <global>
element can be used in a homogeneous environment to specify parameters that will be applied to all Agent installations. If a parameter is specified in both the <global>
element and in an individual <installation>
element then the setting for the individual element will overwrite the global setting.
The following configuration steps should be carried out:
- Specify the Global parameters:
Specify the path to the YADE settings file (.ini file) in the Batch Installer configuration file with the element
<globals><transfer><settings>.
Specify the filename (not the path) for the Agent that has to be installed with the element
<installation_file>
element. This filename contains the version of the Agent which you are installing and is helpful for recognizing the Agent versions that have been installed.
- Specify the installation parameters for each Agent installation:
- Specify the
<install_path>
to point to a location where the Agent should be installed. - Agent options:
<scheduler_user>
: the Agent user<scheduler_log_dir>
: the Logs folder for the Agent
Specify the credentials for the SSH connection:
<user>
: the SSH login user<password>
: the Password for the login user<sudo_password>
: the Password forsudo
actions- <
auth_method>
: the SSH authentication method - <
host
>: the SSH Host <port>
: the SSH port
- Use the
<postprocessing>
element to specify the post-processing commands for the Agent server's operating system. The default commands for a Ubuntu distribution will place the Agent start script under/etc/init.d
and will setup the autostart for the Universal Agent:echo ${ssh.sudo_password} | sudo -S cp ${install_path}/jobscheduler_agent/bin/jobscheduler_agent_${agent_options.scheduler_http_port}.sh /etc/init.d/jobscheduler_agent_${agent_options.scheduler_http_port}
echo ${ssh.sudo_password} | sudo -S
update-rc.d jobscheduler_agent_${agent_options.scheduler_http_port} defaults
- Specify the
Post-processing commands
- The SSH login user has to be set to
root
in order to execute these commands. Therefore the SSH login user should be included insudoers
. - These two commands will be executed by the
PerformInstall
job node, which is the last job node in the job chain. If you want to add more commands, please add the call to the job node. Note that the values for the elements defined in the Batch Installer configuration file can be used for the postprocessing commands, for instance:
${install_path}
: the value for the element<install_path>
${agent_options.scheduler_http_port}
: the value for the element<
scheduler_http_port>
. If not defined, the default value (4445 in this case) is taken, as in the example below.
The Batch Installer configuration file for the example can be downloaded here: batch_installer_config_file.xml and its contents are listed in the following code block:
Hints
Note that if the port was not specified with the
<installations><installation><agent_options>
<scheduler_http_port>
element, this would mean that the global value of4445
would be applied to all Agent installations. In this example, this element is superfluous for the second installation.- The commands defined under
<command>
(in the section<installations><installation><postprocessing><command>
) will be executed for each installation individually. In this example the Agents are to be installed on different UNIX distributions: the first Agent would be installed on an Ubuntu distribution (and therefore commands such asupdate-rc.d
are used) and the second one would be installed on a CentOS distribution (and therefore commands such aschkconfig
are used).
The XML Editor can be used to manage the Batch Installer configuration file and the YADE configuration file. An example Batch Installer configuration file for the installation of a single Agent is shown in the following screenshot: An example YADE configuration file for the installation of a single Agent is shown in the next screenshot: The "YADE Xml2Ini Converter" function in the XML Editor is available for converting YADE files from XML to the Note that it is not necessary to create a Profile for the Batch Installer, as conversion will take place automatically once the "Autotransform" option has been chosen. Every time a change in the XML file is saved the XML file will be automatically converted and saved in A pop-up window will show every time a change is saved if the option "Show notification on autotransform" is chosen. Using the XML Editor
XML Editor for Batch Installer configuration file
XML Editor for YADE configuration file
XML Editor for converting YADE configuration files (XML) into YADE setting files (.ini)
.ini
format required by versions of YADE before 1.11. Clicking on the button of the same name will open the following form:.ini
format.