...
This article describes the use of the JobScheduler Universal Agent Batch Installer for installing multiple Agent instances on 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:
...
- First Installation: an Agent has not yet been installed on the server.
- Update Installation: an Agent has already been installed and optionally may be up and running.
Anchor | ||||
---|---|---|---|---|
|
...
- connects to the Servers that the Agents are to be installed on and
- executes the corresponding required Agent installations.
The Batch Installer application has two main components - a JobScheduler AgentBatchInstaller
job and a JobScheduler universal_agent_installer
job chain. MoreoverIn addition, two XML files batch_installer_config_file.xml
and yade_agent_batch_installer_settings.xml
are needed for the application.
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 the respective each Agent is to be installed.
...
CheckPreRequisite
- Check for the correct Java version.
- Check whether a JobScheduler Universal Agent has already been installed. If so:
- shut down the instance if it is running,
- remove the installation.
Sync:
To wait until all prerequisites have been checked and any already installed Agent instances that are running have been shut down.
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 the Agent instance. - The XML file yadefile
yade_agent_batch_installer_settings.xml
has to be configured and converted to.ini
file format 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 following files to be transfered:
- the JobScheduler Universal Agent installation files:
jobscheduler_unix_universal_agent.tar.gz
thejobscheduler_agent_<port>.sh
start script for the instance - the installation script:
jobscheduler_universal_agent_install.sh
- the JobScheduler Universal Agent installation files:
- Before the transfer starts, the preprocessor will use the use the
PerformInstall
: The installation is started by SSH.- The installation script will install and start the JobScheduler Universal Agent
- Finally the 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
- These commands are specified using the
...
- Unix
- Download the "JobScheduler Universal Agent" tarball for Unix.
- Download the "JobScheduler Universal Agent Batch Installer" for Unix. The archive contains the following:
- a
config/live/batch_installer_agent
folder, with the jobs and job chains. Extract these files to thelive
folder of the JobScheduler Master:SCHEDULER_DATA/config/live
. - a
config/batch_installer
folder containing with the configuration files for the Batch Installer. Extract these files to theconfig
directory of the JobScheduler Master:SCHEDULER_DATA
/config
. - Copy the JobScheduler Universal Agent installation file to the
SCHEDULER_DATA/config/
batch_installer
folder.
- a
- 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 with the jobs and job chains that should be extracted . Extract these files to thelive
folder of the JobScheduler MasterSCHEDULER_DATA/config/live
. - the
config/batch_installer
folder contains with the configuration files for the Batch Installer that should be extracted . Extract these files to the JobScheduler configuration directorySCHEDULER_DATA/config
. - Copy the JobScheduler Universal Agent installation file to the folder
SCHEDULER_DATA/config/
batch_installer
.
- the
...
Configuring XML files with a text editor is error-prone . Therefore and we recommend that you download the XML Editor that can be used and use it to manage the configuration files required for the Batch Installer. For details about the XML Editor see 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 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.
Info | ||
---|---|---|
| ||
|
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 theAgentBatchInstaller
job in your JobScheduler Master.Adjust Set the
installation_definition_file
job parameter with to the path that points to the Batch Installer configuration file.
...
- Open a JobScheduler Operating Center (JOC) browser window for the JobScheduler master.
- Go on the "Jobs" Window and open the folder "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.
...
The following example describes how to do the installation of install four JobScheduler Universal Agents in on two Agent Servers , - that is, two JobScheduler Universal Agents will be installed per server. First of all, the YADE configuration files (XML file ) for the file transfer will be specified, then configured (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 | ||||
---|---|---|---|---|
|
...
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>
Please take 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.
An example for the Batch Installer configuration file for the installation of two Agents is attached on to this wiki page (download: yade_agent_batch_installer_settings.xml) and might look like thisis shown in the following code block:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<?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[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> </Profiles> </Configurations> |
...
Note that the file shown above is an in the YADE XML file format and that YADE versions less that 1.11 and newer 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 here example using this link: yade_agent_batch_installer_settings.ini.
...
- Specify the global parameters:
Specify the path to the YADE settings file (.ini file) in the Batch Installer configuration file with the element
element.<globals><transfer><settings>
- Specify the
<install_path>
to point to a the location where the Agent should be installed.- You could set a different installation path for every installation. In that case, this element should be included for every installation and not globally set.
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 recognising this version of the installed versionsrecognizing the Agent versions that have been installed.
- Specify the installation parameters for each Agent installation:
- 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
>: SSH the SSH Host <port>
: the SSH port
- Use the
<postprocessing>
element to specify the post-processing commands that for the Agent server's operating system. The default commands for an 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
- Agent options:
...
Info | ||
---|---|---|
| ||
|
An example Batch Installer configuration file for the installation of two Agents is attached on to this wiki page (download: batch_installer_config_file.xml) and might look like thisis shown in the following code block:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<?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> <installation_file><![CDATA[jobscheduler_unix_universal_agent.1.10.2-SNAPSHOT.tar.gz]]></installation_file> </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 updadte-rc.d 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 update-rc.d 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>test</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> </installations> |
Info | ||
---|---|---|
| ||
|
Anchor | ||||
---|---|---|---|---|
|
...