You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 49 Next »

Environment

We consider a homogeneous environment a scenario in which a number of JobScheduler Agents will be installed based on the same prerequisites:

  • A JobScheduler Master is up and running.
  • Agent installations are performed for an arbitrary number of servers with the same operating system. One Agent is installed per server.
  • Agents are operated with the same user, listening port and installation path.

The Batch Installer supports

  • First Installation: no Agent is installed and running on the server.
  • Update Installation: an Agent is installed and optionally up and running.

Structure

The JobScheduler Agents will be installed from a JobScheduler Master that connects to the Agent Servers to execute the corresponding Agent installations. The structure is formed by a JobScheduler job AgentBatchInstaller and a JobScheduler job chain universal_agent_installer. The job AgentBatchInstaller is responsible for creating the JobScheduler orders for the job chain. These orders are named <host>:<port> meaning the port and the host where an Agent will be installed. The job chain have four nodes and the sequence look like this:


The job chain for update/installation of an Agent uses the nodes:

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

    • With this regular expression, the following files will be transfered:
      • the JobScheduler Universal Agent installer files: jobscheduler_unix_universal_agent.tar.gz
      • the instance start script: jobscheduler_agent_<port>.sh
      • the installation script: jobscheduler_universal_agent_install.sh
  • PerformInstall: To start the installation using SSH.
    • The step before transfered installation script will be executed
    • The installation script will install and start the JobScheduler Universal Agent
    • Finally the post-processing commands will be executed
      • The post-processing commands are stored with the element <installation><postprocessing><command>
      • Three commands will be executed 
        • if you have more than three commands, please add the call in the job PerformInstall
      • The default commands will place the Agent start script under /etc/init.d and will setup the autostart for JobScheduler Universal Agent on a Linux server (example for an Ubuntu distribution):
        • echo ${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

The following steps have to be carried out. Files can be downloaded from http://www.sos-berlin.com/jobscheduler-downloads

  1. Unix
    • Download the "JobScheduler Universal Agent" tarball for Unix.
    • Download the "JobScheduler Universal Agent Batch Installer" for Unix. The archive provides the following content: 
      • the config/live/batch_installer_agent folder contains jobs and job chains that should be extracted to the live folder of the JobScheduler Master ${SCHEDULER_DATA}/config/live.
      • the config/batch_installer folder contains configuration files for the Batch Installer that should be extracted to the config directory of the JobScheduler Master ${SCHEDULER_DATA}/config.
      • Copy the JobScheduler Universal Agent installation file to the folder ${SCHEDULER_DATA}/config/batch_installer.
  2. Windows
    • Download the "JobScheduler Universal Agent" for Windows.
    • Download the "JobScheduler Universal Agent Batch Installer" for Windows. The archive provides the following content:
      • the config/live/batch_installer_agent folder contains jobs and job chains that should be extracted to the live folder of the JobScheduler Master ${SCHEDULER_DATA}/config/live.
      • the config/batch_installer folder contains configuration files for the Batch Installer that should be extracted to the JobScheduler configuration directory ${SCHEDULER_DATA}/config.
      • Copy the JobScheduler Universal Agent installation file to the folder ${SCHEDULER_DATA}/config/batch_installer.

Configuration

XML files

  1. Configuring XML files with a text editor is error-prone. Therefore we recommend that you download the XML Editor that can be used to manage the necessary configuration files for the Batch Installer. For details about the XML Editor see the below chapter Using the XML Editor.
    • After download of the XML Editor extract the zip file, then start the program sos.xml.editor.exe.
    • Open your Batch Installer configuration file batch_installer_config_file.xml and assign the XSD schema scheduler_universal_agent_installations.xsd, both files are located in the folder config/batch_installer.
    • Open your YADE configuration file yade_agent_batch_installer_settings.xml that is located in the folder config/batch_installer and assign the XSD schema http://www.sos-berlin.com/schema/yade/YADE_configuration_v1.0.xsd
  2. For instructions how to configure the Batch Installer configuration file see the below chapter Batch Installer Configuration File
  3. For instructions how to configure the YADE configuration file see the below chapter YADE profiles for the file transfer.

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 these files from the JobScheduler Master to the corresponding Agent servers:
    • JobScheduler Universal Agent installation files: jobscheduler_unix_universal_agent.1.11.0-SNAPSHOT.tar.gz
    • Start script for an Agent instance: jobscheduler_agent_<port>.sh
    • Installation script: jobscheduler_universal_agent_install.sh
  • For more information about the product, see the product site YADE.

JobScheduler Jobs

  • Job AgentBatchInstaller: Adjust the parameter values for the AgentBatchInstaller job in your JobScheduler Master.
    • Adjust the installation_definition_file job parameter with the path that points to the Batch Installer configuration file.

Installation

Having configured the XML files and the JobScheduler jobs, the Agents can be installed. Start a task for the AgentBatchInstaller job as follows:

  1. Right click on the JobScheduler job
  2. From the context menu use the operation: Start task immediately
  3. This job will create different JobScheduler orders as explained in the chapter and the Agent installation 

Example: Installation of two Agents

The following example explains the installation of two Agents for two servers, i.e. one Agent will be installed per server.

Batch Installer Configuration File

You should have opened the Batch Installer configuration file batch_installer_config_file.xml and have assigned the XSD schema scheduler_universal_agent_installations.xsd. The XML file contains a basic example with the recommended values for an Agent installation.

The Batch Installer configuration file contains an <installation> element for each Agent instance. For a homogeneous environment parameters can be specified with the <global> element and will be applied to all Agent installations. If a parameter is available in the <global> element and in an individual <installation> element then the setting for the specific installation will overwrite the global setting.

Please, perform the following configuration steps:

  1. Global parameters:
    • Specify the <install_path> to point to a location where the Agent should be installed.
    • Specify the path to the YADE settings file (.ini file) in the Batch Installer configuration file with the element <globals><transfer><settings>.
    • Specify the credentials for the SSH connection:
      • <user>: SSH login user 
      • <password>: Password for the login user
      • <sudo_password>: Password for sudo actions
      • <auth_method>: SSH authentication method
      • <port>: SSH port 
    • Specify the post-processing commands that fit your operating system on the Agent server with the <postprocessing> element. The default commands will place the Agent start script under /etc/init.d and will setup the autostart for JobScheduler Universal Agent on a Linux server (example for an Ubuntu distribution):
      • echo ${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

    Post-processing commands

    The SSH login user has to become root in order to execute these commandos. Therefore the SSH login user should be included to sudoers.
  2. Installation parameters (specified for each Agent installation):
    • Agent options:
      • <scheduler_user>: Agent user
      • <scheduler_log_dir>: Logs folder for the Agent
    • SSH Host 

An example for the Batch Installer configuration file for the installation of two Agents might look like this:

Batch Installer Configuration File
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<installations lastRun="2015-11-20 14:11">
    <globals>
        <install_path>/opt</install_path>
        <transfer>
            <settings>C:\Program Files (x86)\sos-berlin.com\jobscheduler\vg_4444\scheduler_data\config\batch_installer\yade_agent_batch_installer_settings.ini</settings>
        </transfer>
        <ssh>
			<user>test</user>
            <password>xxxx</password>
            <sudo_password>xxxx</sudo_password>
            <auth_method>password</auth_method>
            <port>22</port>
        </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>
    </globals>
    <installation lastRun="2015-11-20 14:11">
        <agent_options>
            <scheduler_user>test</scheduler_user>
            <scheduler_log_dir>/var/log/sos-berlin.com/jobscheduler/agent</scheduler_log_dir>
        </agent_options>
        <ssh>
            <host>xxxx</host>
        </ssh>
    </installation>
    <installation lastRun="2015-11-20 14:11">
        <agent_options>
            <scheduler_user>test</scheduler_user>
            <scheduler_log_dir>/var/log/sos-berlin.com/jobscheduler/agent</scheduler_log_dir>
        </agent_options>
        <ssh>
            <host>xxxx</host>
        </ssh>
    </installation>
</installations>

 

Hints

  • Note that the port specified with the parameter <scheduler_http_port> is not specified with the element <installations><installation><agent_options>. This configuration causes the global value 4445 to be applied to all Agent installations.
  • For a homogeneous environment parameters can be specified with the <global> element and are applied to all Agent installations.

 

YADE Configuration File for File Transfer

You should have opened your YADE settings file yade_agent_batch_installer_settings.xml and have assigned the XSD schema http://www.sos-berlin.com/schema/yade/YADE_configuration_v1.0.xsd. The XML file contains a basic example with recommended values for an Agent installation (of only one Agent).

Each installation makes use of a profile in the YADE configuration file. 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>

Please follow these steps:

  1. Add a <ProtocolFragments> element and nodes for each host that you want to install the Agent for.
  2. Add a <Profile> element and nodes for each host that you want to install the Agent for.
  3. 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.

An example for the Batch Installer configuration file for the installation of two Agents might look like this:

YADE Profiles
 <?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.95:4445">
        <BasicConnection>
          <Hostname><![CDATA[192.11.0.95]]></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:\Program Files (x86)\sos-berlin.com\jobscheduler\vg_4444\scheduler_data\config\batch_installer]]></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.95:4445">
      <Operation>
        <Copy>
          <CopySource>
            <CopySourceFragmentRef>
              <LocalSource />
            </CopySourceFragmentRef>
            <SourceFileOptions>
              <Selection>
                <FileSpecSelection>
                  <FileSpec><![CDATA[.*\.(sh|gz)$]]></FileSpec>
                  <Directory><![CDATA[C:\Program Files (x86)\sos-berlin.com\jobscheduler\vg_4444\scheduler_data\config\batch_installer]]></Directory>
                </FileSpecSelection>
              </Selection>
            </SourceFileOptions>
          </CopySource>
          <CopyTarget>
            <CopyTargetFragmentRef>
              <SFTPFragmentRef ref="SFTP_192.11.0.95:4445" />
            </CopyTargetFragmentRef>
            <Directory><![CDATA[/home/test/tmp/]]></Directory>
          </CopyTarget>
        </Copy>
      </Operation>
    </Profile>
  </Profiles>
</Configurations>

 

Note that this is an XML file and YADE will expect an .ini file to perform the transfer that is specified with the Batch Installer configuration file in the element <globals><install_path><transfer><settings>.

.ini file
[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.95:4445]
protocol                            = sftp
host                                = 192.11.0.95
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:\Program Files (x86)\sos-berlin.com\jobscheduler\vg_4444\scheduler_data\config\batch_installer
target_include                      = protocol_fragment_sftp@SFTP_192.11.0.111:4445
target_dir                          = /home/test/tmp/

[192.11.0.95:4445]
operation                           = copy
source_protocol                     = local
file_spec                           = .*\.(sh|gz)$
source_dir                          = C:\Program Files (x86)\sos-berlin.com\jobscheduler\vg_4444\scheduler_data\config\batch_installer
target_include                      = protocol_fragment_sftp@SFTP_192.11.0.95:4445
target_dir                          = /home/test/tmp/

 

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 for a Batch Installer configuration file where one Agent installation is defined looks like this:

XML Editor for YADE configuration file

An example for a YADE configuration file where one Agent installation is defined looks like this:

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

For converting YADE files from a XML format to an .ini format you have the option "YADE Xml2Ini Converter" in your XML Editor. The next screen will look like this:

Regarding the Batch Installer it is not necessary to create a Profile, since the conversion takes place one time once the "Autotransform" option has been chosen. Every time a change in the XML file is saved the file will be automatically converted to the .ini file. 

A pop-up window will show every time a change is saved, if the option "Show notification on autotransform" is chosen. 

 

  • No labels