Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Environment

This article describes the use of the JobScheduler Agent Batch Installer for installing JobScheduler Agents in an environment in which a number of the Agents have already been installed and where the new Agents are to be installed on a server which already has at least one Agent. The environment can be summarized as having the following characteristics:

  • A JobScheduler Master is up and running.
  • A number of JobScheduler Agents have already been installed on different Agent servers.
    • At least one additional Agent is to be installed on a server which already has an Agent installed on it.
  • The new Agent(s) will be operated with the same user and installation path as at least one of the Agents already installed on an Agent server.
    The new Agent will be identified by its listening port which will be unique for the server which the Agent is being installed on.

Prerequisites

The following articles in this knowledge base describe the installation of an Agent or Agents using the Agent Batch Installer. These articles all cover fresh installation - i.e. the installation of a first Agent on a server - for a number of different environments. They are presented here as an introduction to the use of the batch installer. In particular, we recommend the  "Batch Installer Application" and "Download" sections in each article:

  • Batch Installer - Use Cases - Homogeneous environmentThis article describes the use of the JobScheduler Universal Agent Batch Installer in a homogeneous environment. We define a homogeneous environment as one in which a number of JobScheduler Agents will be installed according to the same prerequisites:
    • A JobScheduler Master is up and running.
    • The Agent installations are to be performed on any number of servers that have the same operating system. One Agent is to be installed per server.
    • The Agents will be operated with the same user, listening port and installation path.
  • Batch Installer Use Case: Heterogeneous environments: 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.
  • Batch Installer - Use Case - Multiple Instances: This article describes the use of the JobScheduler Universal Agent Batch Installer for installing multiple Agent instances in a heterogeneous environment. A multiple number of JobScheduler Agents will be installed on every Agent server and every installation will be based on 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. More than one Agent is to be installed per server.
    • In every Agent server, the Agents will be operated with different users and different listening ports.
      • The Agents will be operated with different users (within the same Agent server) to make the example more multifaceted, although the same user can operate more than one Agent if the Agents run on different ports.
    • The installation path will be the same for all Agent installations.

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 section below for more detailed information about using the XML Editor.

...

Info
titleHints
  • The  XML Editor is available for Windows.
  • YADE is an Open Source file transfer solution for FTP, SFTP, FTPS, WebDAV and other protocols. It is used here for transferring the following files from the JobScheduler Master to the Agent servers:
    • JobScheduler Universal Agent installation files: jobscheduler_unix_universal_agent.1.10.2.tar.gz
    • Start script for an Agent instance: jobscheduler_agent_<port>.sh
    • Installation script: jobscheduler_universal_agent_install.sh
  • For more information about YADE, see the YADE product site.

JobScheduler Jobs

Background information

The JobScheduler Agents will be installed by the JobScheduler Master which:

...

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.

Configuration

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 the AgentBatchInstaller job in your JobScheduler Master.
    • Set the installation_definition_file job parameter to the path to the Batch Installer configuration file.

    • Set the update job parameter to false. This will ensure that in the example described below the Batch Installer will not attempt to update existing Agent installations that have been installed using the Batch Installer - and whose configurations are included in the Batch Installer Configuration File.

Further information

A detailed description of the installation procedure itself can be found in the Batch Installer - Reference Documentation article.

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:

  1. Open a JobScheduler Operating Center (JOC) browser window for the JobScheduler master.
  2. Go on the Jobs Window and open the batch_installer_universal_agent folder.
  3. Right click on the job to open the context menu.
  4. Select the Start task immediately operation.

Example: Installation of an additional JobScheduler Universal Agent

The following example describes how to do the installation and configuration of a JobScheduler Universal Agent on an Agent Servers, in an environment with four JobScheduler Universal Agents already installed - two Agents on two different servers. The extra instance is added to the configuration already described in the Batch Installer - Use Case - Multiple Instances use case. ´The Batch Installer will ignore the configuration information for the agents that have already been installed as the update job parameter for the AgentBatchInstaller job has been set to false as described in the JobScheduler Jobs section of this article above.

Anchor
yade_profile_transfer
yade_profile_transfer
YADE Configuration File for File Transfer

We assume that you  have opened the yade_agent_batch_installer_settings.xml YADE configuration file and have assigned the http://www.sos-berlin.com/schema/yade/YADE_configuration_v1.0.xsd XSD schema. The XML file contains a basic example with recommended values for the installation of a single Agent.

...

Code Block
languagexml
titleYADE Profiles
collapsetrue
<?xml version="1.0" encoding="utf-8"?>
<Configurations xsi:noNamespaceSchemaLocation="http://www.sos-berlin.com/schema/yade/YADE_configuration_v1.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Fragments>
    <ProtocolFragments>
      <SFTPFragment name="SFTP_192.11.0.111:4445">
        <BasicConnection>
          <Hostname><![CDATA[192.11.0.111]]></Hostname>
        </BasicConnection>
        <SSHAuthentication>
          <Account><![CDATA[test]]></Account>
          <AuthenticationMethodPassword>
            <Password><![CDATA[xxxx]]></Password>
          </AuthenticationMethodPassword>
        </SSHAuthentication>
      </SFTPFragment>
      <SFTPFragment name="SFTP_192.11.0.111:4446">
        <BasicConnection>
          <Hostname><![CDATA[192.11.0.111]]></Hostname>
        </BasicConnection>
        <SSHAuthentication>
          <Account><![CDATA[sos]]></Account>
          <AuthenticationMethodPassword>
            <Password><![CDATA[xxxx]]></Password>
          </AuthenticationMethodPassword>
        </SSHAuthentication>
      </SFTPFragment>
      <SFTPFragment name="SFTP_192.11.0.95:4445">
        <BasicConnection>
          <Hostname><![CDATA[192.11.0.95]]></Hostname>
        </BasicConnection>
        <SSHAuthentication>
          <Account><![CDATA[sos]]></Account>
          <AuthenticationMethodPassword>
            <Password><![CDATA[xxxx]]></Password>
          </AuthenticationMethodPassword>
        </SSHAuthentication>
      </SFTPFragment>
      <SFTPFragment name="SFTP_192.11.0.95:4446">
        <BasicConnection>
          <Hostname><![CDATA[192.11.0.95]]></Hostname>
        </BasicConnection>
        <SSHAuthentication>
          <Account><![CDATA[sos]]></Account>
          <AuthenticationMethodPassword>
            <Password><![CDATA[xxxx]]></Password>
          </AuthenticationMethodPassword>
        </SSHAuthentication>
      </SFTPFragment>
	  <SFTPFragment name="SFTP_192.11.0.111:4448">
        <BasicConnection>
          <Hostname><![CDATA[192.11.0.111]]></Hostname>
        </BasicConnection>
        <SSHAuthentication>
          <Account><![CDATA[test]]></Account>
          <AuthenticationMethodPassword>
            <Password><![CDATA[xxxx]]></Password>
          </AuthenticationMethodPassword>
        </SSHAuthentication>
      </SFTPFragment>
    </ProtocolFragments>
  </Fragments>
  <Profiles>
    <Profile profile_id="192.11.0.111:4445">
      <Operation>
        <Copy>
          <CopySource>
            <CopySourceFragmentRef>
              <LocalSource />
            </CopySourceFragmentRef>
            <SourceFileOptions>
              <Selection>
                <FileSpecSelection>
                  <FileSpec><![CDATA[.*\.(sh|gz)$]]></FileSpec>
                  <Directory><![CDATA[C:\tmp\agent_batch]]></Directory>
                </FileSpecSelection>
              </Selection>
            </SourceFileOptions>
          </CopySource>
          <CopyTarget>
            <CopyTargetFragmentRef>
              <SFTPFragmentRef ref="SFTP_192.11.0.111:4445" />
            </CopyTargetFragmentRef>
            <Directory><![CDATA[/home/test/tmp/]]></Directory>
          </CopyTarget>
        </Copy>
      </Operation>
    </Profile>
    <Profile profile_id="192.11.0.111:4446">
      <Operation>
        <Copy>
          <CopySource>
            <CopySourceFragmentRef>
              <LocalSource />
            </CopySourceFragmentRef>
            <SourceFileOptions>
              <Selection>
                <FileSpecSelection>
                  <FileSpec><![CDATA[.*\.(sh|gz)$]]></FileSpec>
                  <Directory><![CDATA[C:\tmp\agent_batch]]></Directory>
                </FileSpecSelection>
              </Selection>
            </SourceFileOptions>
          </CopySource>
          <CopyTarget>
            <CopyTargetFragmentRef>
              <SFTPFragmentRef ref="SFTP_192.11.0.111:4446" />
            </CopyTargetFragmentRef>
            <Directory><![CDATA[/home/sos/tmp/]]></Directory>
          </CopyTarget>
        </Copy>
      </Operation>
    </Profile>
    <Profile profile_id="192.11.0.95:4445">
      <Operation>
        <Copy>
          <CopySource>
            <CopySourceFragmentRef>
              <LocalSource />
            </CopySourceFragmentRef>
            <SourceFileOptions>
              <Selection>
                <FileSpecSelection>
                  <FileSpec><![CDATA[.*\.(sh|gz)$]]></FileSpec>
                  <Directory><![CDATA[C:\tmp\agent_batch]]></Directory>
                </FileSpecSelection>
              </Selection>
            </SourceFileOptions>
          </CopySource>
          <CopyTarget>
            <CopyTargetFragmentRef>
              <SFTPFragmentRef ref="SFTP_192.11.0.95:4445" />
            </CopyTargetFragmentRef>
            <Directory><![CDATA[/home/sos/tmp/]]></Directory>
          </CopyTarget>
        </Copy>
      </Operation>
    </Profile>
    <Profile profile_id="192.11.0.95:4446">
      <Operation>
        <Copy>
          <CopySource>
            <CopySourceFragmentRef>
              <LocalSource />
            </CopySourceFragmentRef>
            <SourceFileOptions>
              <Selection>
                <FileSpecSelection>
                  <FileSpec><![CDATA[.*\.(sh|gz)$]]></FileSpec>
                  <Directory><![CDATA[C:\tmp\agent_batch]]></Directory>
                </FileSpecSelection>
              </Selection>
            </SourceFileOptions>
          </CopySource>
          <CopyTarget>
            <CopyTargetFragmentRef>
              <SFTPFragmentRef ref="SFTP_192.11.0.95:4446" />
            </CopyTargetFragmentRef>
            <Directory><![CDATA[/home/test/tmp/]]></Directory>
          </CopyTarget>
        </Copy>
      </Operation>
    </Profile>
	<Profile profile_id="192.11.0.111:4448">
      <Operation>
        <Copy>
          <CopySource>
            <CopySourceFragmentRef>
              <LocalSource />
            </CopySourceFragmentRef>
            <SourceFileOptions>
              <Selection>
                <FileSpecSelection>
                  <FileSpec><![CDATA[.*\.(sh|gz)$]]></FileSpec>
                  <Directory><![CDATA[C:\tmp\agent_batch]]></Directory>
                </FileSpecSelection>
              </Selection>
            </SourceFileOptions>
          </CopySource>
          <CopyTarget>
            <CopyTargetFragmentRef>
              <SFTPFragmentRef ref="SFTP_192.11.0.111:4448" />
            </CopyTargetFragmentRef>
            <Directory><![CDATA[/home/test/tmp/]]></Directory>
          </CopyTarget>
        </Copy>
      </Operation>
    </Profile>
  </Profiles>
</Configurations>

Anchor
yade_settings_file
yade_settings_file
YADE Settings File for File Transfer

Note that the file shown above is an in the YADE XML file format and that YADE versions less that 1.11 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.

...

Code Block
titleINI file
collapsetrue
[protocol_fragment_sftp@SFTP_192.11.0.111:4445]
protocol                            = sftp
host                                = 192.11.0.111
user                                = test
ssh_auth_method                     = password
password                            = xxxx
[protocol_fragment_sftp@SFTP_192.11.0.111:4446]
protocol                            = sftp
host                                = 192.11.0.111
user                                = sos
ssh_auth_method                     = password
password                            = xxxx
[protocol_fragment_sftp@SFTP_192.11.0.95:4445]
protocol                            = sftp
host                                = 192.11.0.95
user                                = sos
ssh_auth_method                     = password
password                            = xxxx
[protocol_fragment_sftp@SFTP_192.11.0.95:4446]
protocol                            = sftp
host                                = 192.11.0.95
user                                = sos
ssh_auth_method                     = password
password                            = xxxx
[protocol_fragment_sftp@SFTP_192.11.0.111:4448]
protocol                            = sftp
host                                = 192.11.0.111
user                                = test
ssh_auth_method                     = password
password                            = xxxx
[192.11.0.111:4445]
operation                           = copy
source_protocol                     = local
file_spec                           = .*\.(sh|gz)$
source_dir                          = C:\tmp\agent_batch
target_include                      = protocol_fragment_sftp@SFTP_192.11.0.111:4445
target_dir                          = /home/test/tmp/
[192.11.0.111:4446]
operation                           = copy
source_protocol                     = local
file_spec                           = .*\.(sh|gz)$
source_dir                          = C:\tmp\agent_batch
target_include                      = protocol_fragment_sftp@SFTP_192.11.0.111:4446
target_dir                          = /home/sos/tmp/
[192.11.0.95:4445]
operation                           = copy
source_protocol                     = local
file_spec                           = .*\.(sh|gz)$
source_dir                          = C:\tmp\agent_batch
target_include                      = protocol_fragment_sftp@SFTP_192.11.0.95:4445
target_dir                          = /home/sos/tmp/
[192.11.0.95:4446]
operation                           = copy
source_protocol                     = local
file_spec                           = .*\.(sh|gz)$
source_dir                          = C:\tmp\agent_batch
target_include                      = protocol_fragment_sftp@SFTP_192.11.0.95:4446
target_dir                          = /home/test/tmp/
[192.11.0.111:4448]
operation                           = copy
source_protocol                     = local
file_spec                           = .*\.(sh|gz)$
source_dir                          = C:\tmp\agent_batch
target_include                      = protocol_fragment_sftp@SFTP_192.11.0.111:4448
target_dir                          = /home/test/tmp/

Anchor
installer_config_file
installer_config_file
Batch Installer Configuration File

You can download the Batch Installer configuration file for the example here: batch_installer_config_file.xml. The contents of this file are listed in the code block later on in this section:

...

Code Block
languagexml
titleInstaller Configuration File
linenumberstrue
collapsetrue
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<installations lastRun="2015-11-23 12:11">

    <globals>
        <install_path>/opt</install_path>
        <transfer>
            <settings>c:\tmp\agent_batch\yade_agent_batch_installer_settings.ini</settings>
        </transfer>
        <ssh>
            <auth_method>password</auth_method>
            <port>22</port>
        </ssh>
    </globals>

    <installation lastRun="2015-11-23 11:11">
        <agent_options>
            <scheduler_user>test</scheduler_user>
            <scheduler_log_dir>/var/log/sos-berlin.com/jobscheduler/agent</scheduler_log_dir>
        </agent_options>
        <ssh>
            <user>test</user>
            <password>xxxx</password>
            <sudo_password>xxxx</sudo_password>
            <host>192.11.0.111</host>
        </ssh>
        <postprocessing>
            <command>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}</command>
            <command>echo ${ssh.sudo_password} | sudo -S chkconfig jobscheduler_agent_${agent_options.scheduler_http_port}</command>
        </postprocessing>
    </installation>


    <installation lastRun="2015-11-23 11:11">
        <agent_options>
            <scheduler_http_port>4446</scheduler_http_port>
            <scheduler_user>sos</scheduler_user>
            <scheduler_log_dir>/var/log/sos-berlin.com/jobscheduler/agent</scheduler_log_dir>
        </agent_options>
        <ssh>
            <user>sos</user>
            <password>xxxx</password>
            <sudo_password>xxxx</sudo_password>
            <host>192.11.0.111</host>
        </ssh>
        <postprocessing>
            <command>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}</command>
            <command>echo ${ssh.sudo_password} | sudo -S chkconfig jobscheduler_agent_${agent_options.scheduler_http_port}</command>
        </postprocessing>
    </installation>


    <installation lastRun="2015-11-23 11:11">
        <agent_options>
            <scheduler_user>sos</scheduler_user>
            <scheduler_log_dir>/var/log/sos-berlin.com/jobscheduler/agent</scheduler_log_dir>
        </agent_options>
        <ssh>
            <user>sos</user>
            <password>xxxx</password>
            <sudo_password>xxxx</sudo_password>
            <host>192.11.0.95</host>
        </ssh>
        <postprocessing>
            <command>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}</command>
            <command>echo ${ssh.sudo_password} | sudo -S chkconfig jobscheduler_agent_${agent_options.scheduler_http_port}</command>
        </postprocessing>
    </installation>


    <installation lastRun="2015-11-23 11:11">
        <agent_options>
            <scheduler_http_port>4446</scheduler_http_port>
            <scheduler_user>test</scheduler_user>
            <scheduler_log_dir>/var/log/sos-berlin.com/jobscheduler/agent</scheduler_log_dir>
        </agent_options>
        <ssh>
            <user>sos</user>
            <password>xxxx</password>
            <sudo_password>xxxx</sudo_password>
            <host>192.11.0.95</host>
        </ssh>
        <postprocessing>
            <command>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}</command>
            <command>echo ${ssh.sudo_password} | sudo -S chkconfig jobscheduler_agent_${agent_options.scheduler_http_port}</command>
        </postprocessing>
    </installation>

    <installation lastRun="">
        <agent_options>
            <scheduler_http_port>4448</scheduler_http_port>
            <scheduler_user>test</scheduler_user>
            <scheduler_log_dir>/var/log/sos-berlin.com/jobscheduler/agent</scheduler_log_dir>
        </agent_options>
        <ssh>
            <user>test</user>
            <password>xxxx</password>
            <sudo_password>xxxx</sudo_password>
            <host>192.11.0.111</host>
        </ssh>
        <postprocessing>
            <command>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}</command>
            <command>echo ${ssh.sudo_password} | sudo -S chkconfig jobscheduler_agent_${agent_options.scheduler_http_port}</command>
        </postprocessing>
    </installation>
</installations>

Anchor
xml_editor
xml_editor
Using the XML Editor

The XML Editor can be used to manage the Batch Installer configuration file and the YADE configuration file.

XML Editor for Batch Installer configuration file

An example Batch Installer configuration file for the installation of a single Agent is shown in the following screenshot:

XML Editor for YADE configuration file

An example YADE configuration file for the installation of a single Agent is shown in the next screenshot:

Anchor
yadexml2ini_converter
yadexml2ini_converter
XML Editor for converting YADE configuration files (XML) into YADE setting files (.ini)

The "YADE Xml2Ini Converter" function in the XML Editor is available for converting YADE files from XML to the .ini format required by versions of YADE before 1.11. Clicking on the button of the same name will open the following form:

...