Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Div. minor corrections

...

  • TransferInstallationSetup: To transfer the installer files to on the host
    • Before the transfer starts, the preprocessor will use the use the jobscheduler_agent_instance_script.txt template to create a start script for each Agent instance
    • The XML file yade_agent_batch_installer_settings.xml has to be configured and converted to .ini file before the transfer starts. See the YADE configuration file for the file transfer chapter below for instructions on how to configure the YADE configuration file and YADE Settings File for the File Transfer for instructions on how the .ini file should look like.
    • The files that will be transfered are specified with the element <globals><transfer><file_spec=".*\.(sh|gz)$">  

    • This regular expression is used to select the files to be transfered:
      • the JobScheduler Universal Agent installation files: jobscheduler_unix_universal_agent.tar.gz
        the jobscheduler_agent_<port>.sh start script for the instance
      • the installation script: jobscheduler_universal_agent_install.sh
  • PerformInstall: The installation is started by SSH.
    • The installation script will install and start the JobScheduler Universal Agent
    • The PerformInstall job post-processing commands will then be executed:
      • These commands are specified using the <installation><postprocessing><command> element.
      • The default configuration for a Linux server will place the Agent start script under /etc/init.d and set up the autostart for JobScheduler Universal Agent (the following example is for a Ubuntu distribution):
        • 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

...

  1. Unix
    • Download the "JobScheduler Universal Agent" tarball for Unix.
    • Download the "JobScheduler Universal Agent Batch Installer" for Unix. The archive contains the following: 
      • 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 containing  folder with the configuration files for the Batch Installer. Extract these files to the config directory of the JobScheduler Master: SCHEDULER_DATA/config.
      • Copy the JobScheduler Universal Agent installation file to the SCHEDULER_DATA/config/batch_installer folder.
  2. Windows
    • Download the "JobScheduler Universal Agent" for Windows.
    • Download the "JobScheduler Universal Agent Batch Installer" for Windows. The archive contains the following
      • the config/live/batch_installer_agent folder contains with the jobs and job chains. Extract these files to the live folder of the JobScheduler Master SCHEDULER_DATA/config/live.
      • the config/batch_installer folder contains with the configuration files for the Batch Installer. Extract these files to the JobScheduler configuration directory SCHEDULER_DATA/config.
      • Copy the JobScheduler Universal Agent installation file to the folder SCHEDULER_DATA/config/batch_installer.

...

Configuring XML files with a text editor is error-prone and we recommend that you download the XML Editor. The XML Editor can be used and use it to manage the configuration files required for the Batch Installer and . The XML Editor automatically validates configuration files and thereby therefore reduces the possibility of configuration errors. For details about See the Using the XML Editor see the Using  chapter below for more detailed information about the XML Editor chapter below.

  • 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 configuration file, which is located in the config/batch_installer folder and assign the XSD schema http://www.sos-berlin.com/schema/yade/YADE_configuration_v1.0.xsd. See the YADE profiles for the file transfer chapter below for instructions on how to configure the YADE configuration file.
  • Open your batch_installer_config_file.xml configuration file in the XML Editor and assign the scheduler_universal_agent_installations.xsd schema: both files are located in the config/batch_installer folder. See the Batch Installer Configuration File chapter below for instructions on how to configure the Batch Installer configuration file.

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. 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.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 YADE, see the YADE product site.

JobScheduler Jobs

Once Carry out the following once the job and job chain were have been extracted to the live folder of your JobScheduler Master, please do the following

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

...

  1. Open a JobScheduler Operating Center (JOC) browser window for the JobScheduler master.
  2. Go on the "Jobs" Window and open the folder "batch_installer_universal_agent" folder.
  3. Right click on the job to open the context menu.
  4. Select the Start task immediately operation.
  5. This job will create the appropriate JobScheduler orders as explained in the chapter Batch Installer Application.

...

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.

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 an Agent the installation ( of only one a single Agent).

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>

...

An example for the Batch Installer configuration file for the installation of two Agents is attached to this page (download: yade_agent_batch_installer_settings.xml) and is shown in the following code block::

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.95:4445">
        <BasicConnection>
          <Hostname><![CDATA[192.11.0.95]]></Hostname>
        </BasicConnection>
        <SSHAuthentication>
          <Account><![CDATA[sos]]></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.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>
  </Profiles>
</Configurations>

...

  1. 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 it is helpful for recognizing the Agent versions that have been installed.

  2. 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 for sudo 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

Info
titlePost-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 to in sudoers.
  • 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.

...

Code Block
languagexml
titleInstaller Configuration File
collapsetrue
<?xml version="1.0" encoding="utf-8"?>
<installations lastRun="2015-11-19 17:11">
  <globals>
    <transfer>
      <settings><![CDATA[c:\tmp\agent_batch\yade_agent_batch_installer_settings.ini]]></settings>
    </transfer>
	<installation_file><![CDATA[jobscheduler_unix_universal_agent.1.10.2-SNAPSHOT.tar.gz]]></installation_file>
  </globals>
  <installation lastRun="2015-11-19 17:11">
    <install_path><![CDATA[/opt]]></install_path>
    <agent_options>
      <scheduler_http_port>4447</scheduler_http_port>
      <scheduler_user><![CDATA[test]]></scheduler_user>
      <scheduler_log_dir><![CDATA[/var/log/sos-berlin.com/jobscheduler/agent]]></scheduler_log_dir>
    </agent_options>
    <ssh>
      <password><![CDATA[test]]></password>
      <sudo_password><![CDATA[xxxx]]></sudo_password>
      <auth_method><![CDATA[password]]></auth_method>
      <host><![CDATA[192.11.0.111]]></host>
      <port><![CDATA[22]]></port>
    </ssh>
    <postprocessing>
      <command><![CDATA[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><![CDATA[echo ${ssh.sudo_password} | sudo -S update-rc.d jobscheduler_agent_${agent_options.scheduler_http_port}]]></command>
    </postprocessing>
  </installation>
  <installation lastRun="2015-11-19 17:11">
    <install_path><![CDATA[/opt/]]></install_path>
    <agent_options>
      <scheduler_http_port>4445</scheduler_http_port>
      <scheduler_user><![CDATA[sos]]></scheduler_user>
      <scheduler_log_dir><![CDATA[/var/log/sos-berlin.com/jobscheduler/agent]]></scheduler_log_dir>
    </agent_options>
    <ssh>
      <user><![CDATA[sos]]></user>
      <password><![CDATA[xxxx]]></password>
      <sudo_password><![CDATA[xxxx]]></sudo_password>
      <auth_method><![CDATA[password]]></auth_method>
      <host><![CDATA[192.11.0.95]]></host>
      <port><![CDATA[22]]></port>
    </ssh>
    <postprocessing>
      <command><![CDATA[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><![CDATA[echo ${ssh.sudo_password} | sudo -S chkconfig jobscheduler_agent_${agent_options.scheduler_http_port}]]></command>
    </postprocessing>
  </installation>
</installations>
Info
titleHints
  • Note that if the port was not specified with the <installations><installation><agent_options><scheduler_http_port> element then , this would mean tha that the global value of 4445 is 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 installations installation individually. In this example you would install the Agents are to be installed on different UNIX distributions, : the first one Agent would be installed on an Ubuntu distribution (and therefore commands like such as update-rc.d are used) and the second one would be installed on a CentOS distribution (and therefore commands like such as chkconfig are used).

Anchor
xml_editor
xml_editor
Using the XML Editor

...