Table of Contents |
---|
...
Introduction
This article is one of a series describing how to configure the JobScheduler Universal Agent Batch Installer so that a number of Universal Agents can be readily installed on a number of servers.
Article Scope
This article describes the how to use of the JobScheduler Universal Agent Batch Installer for installing extra JobScheduler to install Agents in an environment in which a number of Jobscheduler where Agents have already been installed:
- A JobScheduler Master is up and running.
- JobScheduler Agents have been already installed on an Agent server.
- An extra installation of an Agent will be carried out.
- The new Agent will be operated with same user and installation path.
- The listening port for the new Agent will be obviously a different one than the installed Agents.
...
The JobScheduler Agents will be installed by a JobScheduler Master that:
- connects to the Servers that the Agents are to be installed on and
- executes the required Agent installations.
The Batch Installer application has two main components - a JobScheduler AgentBatchInstaller
job and a JobScheduler universal_agent_installer
job chain. In 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 each Agent is to be installed.
The universal_agent_installer
job chain has four job nodes configured in series as follows:
...
The individual nodes in the universal_agent_installer
job chain have the following functions:
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 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
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
- 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
Download
The following steps have to be carried out. Files can be downloaded from http://www.sos-berlin.com/jobscheduler-downloads
- 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 the thelive
folder of the JobScheduler Master:SCHEDULER_DATA/config/live
. - a
config/batch_installer
folder 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 contains the following
- the
config/live/batch_installer_agent
folder with the jobs and job chains. Extract these files to thelive
folder of the JobScheduler MasterSCHEDULER_DATA/config/live
. - the
config/batch_installer
folder with the configuration files for the Batch Installer. 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
Configuration
XML files
Configuring XML files with a text editor is error-prone and we recommend that you download the XML Editor and use it 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 the XML Editor.
...
. Other use cases in this series of articles are listed in the introductory JobScheduler Universal Agent - Batch Installation and Update of Agents article.
A general introduction to installation of the JobScheduler Universal Agent can be found in the JobScheduler Universal Agent - Installation & Operation article.
The JobScheduler Universal Agent - Batch Installation and Update of Agents article provides an overview of how the Batch Installer works. New users are strongly recommended to read this article before proceeding with the instructions presented here.
The Batch Installation - Reference Documentation article provides a detailed guide to configuration of the batch installer with, for example, full lists of parameters.
Installation 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 additional Agent installation will overwrite the previous Agent installation.
- The new Agent(s) will be operated with the same user and installation path as 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.
The use case described in this article builds on the case presented in the Batch Installation - Use Cases - Multiple Instances article in which a total of four agents were installed on two servers. Note, however, that only one Agent server with a single Agent installed on it is required before the current example can be implemented.
Prerequisites
The following articles describe the installation of Agents using the Agent Batch Installer. These articles all cover fresh installation - i.e. the installation of a first Agent on a server - or update for a number of different environments. In case an extra Agent installation should be carried out, the user came previously across one of these environments (either using the Batch Installer or through other methods). In particular, we recommend to have a look the "Batch Installer Application" and "Download" sections in each article to understand how the solution works:
Excerpt Include | ||||||
---|---|---|---|---|---|---|
|
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.
- 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 section below for instructions on how to configure the Batch Installer configuration file.
Info | ||
---|---|---|
| ||
|
JobScheduler Jobs
Background information
The JobScheduler Agents will be installed by the JobScheduler Master which:
- connects to the servers that the Agents are to be installed on and
- executes the required Agent installations.
The Batch Installer has two main components:
- a JobScheduler
AgentBatchInstaller
job and - a JobScheduler
universal_agent_installer
job chain.
In 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 uses a name 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 the JobScheduler Master:
AgentBatchInstaller
job: adjust the parameter values for theAgentBatchInstaller
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 tofalse
. 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 Installation - 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:
- 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.
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 Installation - Use Cases - 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 | ||||
---|---|---|---|---|
|
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.
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.
You can download the YADE Configuration file for the example here: yade_agent_batch_installer_settings.xml. The contents of this file are 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> |
Info | ||
---|---|---|
| ||
|
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.
Installation and Configuration Steps
For both scenarios above, the same steps will be carried out:
- Download the JobScheduler Universal Agent Batch Installer zip File
Unzip the JobScheduler Universal Agent Batch Installer zip file.
- Download the JobScheduler Universal Agent installation file.
- Copy the content of the
live
folder to thelive
folder of your JobScheduler Master instance - Copy the content of the folder
batch_install
to any folder (where the JobScheduler has permissions to access) - Copy the JobScheduler Universal Agent installation file to the same folder (mentioned in step 5) and rename the JobScheduler Universal Agent installation file to
jobscheduler_unix_universal_agent.tar.gz
- Create the installer configuration file (see paragraph below Installer Configuration File)
- Job
AgentBatchInstaller:
Adjust the parameter values for the JobAgentBatchInstaller
in your JobScheduler MasterThe parameter
installation_definition_file
has to be set. This parameter defines the path to the XML file that contains all parameters for the batch installation.The parameter
update
has to be set tofalse
. This parameter defines the following:If true then an order for all
<instances>
will be created.If false then an order for
<instances>
that do not have thelast_run
attribute will be created
- Create the YADE settings file (see section below YADE profiles for the file transfer)
Example: Installation of one extra JobScheduler Universal Agent
The following example describes how to do the installation and configuration of one JobScheduler Universal Agents in one of the Agent Servers, where more JobScheduler Universal Agents had already been installed. The extra instance is added to the configuration described in the Use Case above: Batch Installer Use Case: Multiple Instances
...
The installer configuration file contains an <installation>
element for each JobScheduler Universal Agent instance. Set the name for the YADE settings file in the installer configuration file with the element <globals><transfer><settings>.
An example for the installer configuration file can look like this:
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> <Password><![CDATA[xxxx]]></Password> </transfer>AuthenticationMethodPassword> <ssh></SSHAuthentication> </SFTPFragment> <auth_method>password</auth_method> <SFTPFragment name="SFTP_192.11.0.95:4445"> <BasicConnection> <port>22</port> <Hostname><![CDATA[192.11.0.95]]></Hostname> </ssh>BasicConnection> </globals> <SSHAuthentication> <installation lastRun="2015-11-23 11:11"> <Account><![CDATA[sos]]></Account> <agent_options><AuthenticationMethodPassword> <scheduler_user>test</scheduler_user><Password><![CDATA[xxxx]]></Password> <scheduler_log_dir>/var/log/sos-berlin.com/jobscheduler/agent</scheduler_log_dir></AuthenticationMethodPassword> </agent_options>SSHAuthentication> </SFTPFragment> <ssh> <SFTPFragment name="SFTP_192.11.0.95:4446"> <user>test</user><BasicConnection> <password>xxxx</password><Hostname><![CDATA[192.11.0.95]]></Hostname> </BasicConnection> <sudo_password>xxxx</sudo_password> <SSHAuthentication> <host>192.11.0.111</host><Account><![CDATA[test]]></Account> </ssh> <AuthenticationMethodPassword> <postprocessing> <Password><![CDATA[xxxx]]></Password> </AuthenticationMethodPassword> <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> </SSHAuthentication> </SFTPFragment> </ProtocolFragments> </Fragments> <Profiles> <command>echo ${ssh.sudo_password} | sudo -S chkconfig jobscheduler_agent_${agent_options.scheduler_http_port}</command><Profile profile_id="192.11.0.111:4445"> <Operation> </postprocessing><Copy> </installation> <installation lastRun="2015-11-23 11:11"> <CopySource> <agent_options><CopySourceFragmentRef> <scheduler_http_port>4446</scheduler_http_port><LocalSource /> <scheduler_user>sos</scheduler_user></CopySourceFragmentRef> <scheduler_log_dir>/var/log/sos-berlin.com/jobscheduler/agent</scheduler_log_dir><SourceFileOptions> </agent_options> <ssh><Selection> <user>sos</user> <FileSpecSelection> <password>xxxx</password> <sudo_password>xxxx</sudo_password><FileSpec><![CDATA[.*\.(sh|gz)$]]></FileSpec> <host>192.11.0.111</host> <Directory><![CDATA[C:\Program </ssh>Files (x86)\sos-berlin.com\jobscheduler\vg_4444\scheduler_data\config\batch_installer]]></Directory> <postprocessing> </FileSpecSelection> <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> </Selection> <command>echo ${ssh.sudo_password} | sudo -S chkconfig jobscheduler_agent_${agent_options.scheduler_http_port}</command></SourceFileOptions> </CopySource> </postprocessing> <CopyTarget> </installation> <installation lastRun="2015-11-23 11:11"> <CopyTargetFragmentRef> <agent_options> <SFTPFragmentRef <scheduler_user>sos</scheduler_user>ref="SFTP_192.11.0.111:4445" /> <scheduler_log_dir>/var/log/sos-berlin.com/jobscheduler/agent</scheduler_log_dir></CopyTargetFragmentRef> </agent_options> <Directory><![CDATA[/home/test/tmp/]]></Directory> <ssh> </CopyTarget> <user>sos<</user>Copy> </Operation> </Profile> <password>xxxx</password> <Profile profile_id="192.11.0.111:4446"> <Operation> <sudo_password>xxxx</sudo_password> <Copy> <CopySource> <host>192.11.0.95</host> </ssh><CopySourceFragmentRef> <postprocessing> <LocalSource /> <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> CopySourceFragmentRef> <SourceFileOptions> <command>echo ${ssh.sudo_password} | sudo -S chkconfig jobscheduler_agent_${agent_options.scheduler_http_port}</command> <Selection> </postprocessing> </installation> <installation lastRun="2015-11-23 11:11"> <FileSpecSelection> <agent_options> <scheduler_http_port>4446</scheduler_http_port> <FileSpec><![CDATA[.*\.(sh|gz)$]]></FileSpec> <scheduler_user>test</scheduler_user> <Directory><![CDATA[C:\Program <scheduler_log_dir>/var/log/sos-Files (x86)\sos-berlin.com/jobscheduler/agent</scheduler_log_dir>\jobscheduler\vg_4444\scheduler_data\config\batch_installer]]></Directory> </agent_options> <ssh></FileSpecSelection> <user>sos<</user>Selection> <password>xxxx<</password>SourceFileOptions> <sudo_password>xxxx</sudo_password></CopySource> <host>192.11.0.95</host> <CopyTarget> </ssh> <CopyTargetFragmentRef> <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> <SFTPFragmentRef ref="SFTP_192.11.0.111:4446" /> </CopyTargetFragmentRef> <command>echo ${ssh.sudo_password} | sudo -S chkconfig jobscheduler_agent_${agent_options.scheduler_http_port}</command> <Directory><![CDATA[/home/sos/tmp/]]></Directory> </postprocessing>CopyTarget> </installation> <installation lastRun="">Copy> </Operation> </Profile> <agent_options><Profile profile_id="192.11.0.95:4445"> <Operation> <scheduler_http_port>4448</scheduler_http_port> <Copy> <scheduler_user>test</scheduler_user><CopySource> <scheduler_log_dir>/var/log/sos-berlin.com/jobscheduler/agent</scheduler_log_dir> <CopySourceFragmentRef> </agent_options> <LocalSource <ssh>/> <user>test<</user>CopySourceFragmentRef> <password>xxxx</password><SourceFileOptions> <sudo_password>xxxx</sudo_password> <Selection> <host>192.11.0.111</host> <FileSpecSelection> </ssh> <postprocessing> <FileSpec><![CDATA[.*\.(sh|gz)$]]></FileSpec> <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> <Directory><![CDATA[C:\Program Files (x86)\sos-berlin.com\jobscheduler\vg_4444\scheduler_data\config\batch_installer]]></Directory> <command>echo ${ssh.sudo_password} | sudo -S chkconfig jobscheduler_agent_${agent_options.scheduler_http_port}</command> </FileSpecSelection> </Selection> </postprocessing>SourceFileOptions> </installation> </installations> |
HINTS:
- Note that the value that defines this case is the one from
<lastRun>
in the last<installation>
. For this to work:- The parameter
update
in the JobAgentBatchInstaller
has to be set tofalse
. - The value
<lastRun>
has to be empty for the extra installation.
- The parameter
...
Each installation makes use of a profile in the YADE settings 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:
- Specify the name of the YADE settings file with the
<globals><settings>
element. - Open the YADE settings file or create a new one.
- Assign the XSD Schema http://www.sos-berlin.com/schema/yade/YADE_configuration_v1.0.xsd
- Add a
<ProtocolFragments>
element and nodes for each host that you want to install the JobScheduler Universal Agent for. - Add a
<Profile>
element and nodes for each host you want install the JobScheduler Universal Agent for. - The default
profile_id
is<host>:<port>
. If you do not use the default then you have to specify the profile name in the installer configuration file.
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_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:\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:4446" /> </CopyTargetFragmentRef> <Directory><![CDATA[/home/test/tmp/]]></Directory> </CopyTarget> </Copy> </Operation> </Profile> <Profile profile_id="192.11.0.111:44454448"> <Operation> <BasicConnection> <Copy> <Hostname><![CDATA[192.11.0.111]]></Hostname><CopySource> </BasicConnection> <CopySourceFragmentRef> <SSHAuthentication> <Account><![CDATA[test]]></Account> <LocalSource /> <AuthenticationMethodPassword></CopySourceFragmentRef> <Password><![CDATA[xxxx]]></Password><SourceFileOptions> </AuthenticationMethodPassword> <Selection> </SSHAuthentication> </SFTPFragment> <SFTPFragment name="SFTP_192.11.0.111:4446"> <FileSpecSelection> <BasicConnection> <Hostname><<FileSpec><![CDATA[192.11.0.111*\.(sh|gz)$]]></Hostname>FileSpec> </BasicConnection> <SSHAuthentication> <Account><![CDATA[sos<Directory><![CDATA[C:\Program Files (x86)\sos-berlin.com\jobscheduler\vg_4444\scheduler_data\config\batch_installer]]></Account>Directory> <AuthenticationMethodPassword> </FileSpecSelection> <Password><![CDATA[xxxx]]></Password> </AuthenticationMethodPassword>Selection> </SSHAuthentication> </SFTPFragment>SourceFileOptions> <SFTPFragment name="SFTP_192.11.0.95:4445"> </CopySource> <BasicConnection> <CopyTarget> <Hostname><![CDATA[192.11.0.95]]></Hostname> </BasicConnection><CopyTargetFragmentRef> <SSHAuthentication> <SFTPFragmentRef ref="SFTP_192.11.0.111:4448" /> <Account><![CDATA[sos]]></Account> <AuthenticationMethodPassword></CopyTargetFragmentRef> <Password><<Directory><![CDATA[xxxx/home/test/tmp/]]></Password>Directory> </AuthenticationMethodPassword>CopyTarget> </SSHAuthentication>Copy> </SFTPFragment> Operation> </Profile> </Profiles> </Configurations> |
Anchor | ||||
---|---|---|---|---|
|
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.
- 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
Code Block | ||||
---|---|---|---|---|
| ||||
[protocol_fragment_sftp@SFTP <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">4445] protocol <BasicConnection> <Hostname><![CDATA[192.11.0.111]]></Hostname> </BasicConnection> = sftp host <SSHAuthentication> <Account><![CDATA[test]]></Account> <AuthenticationMethodPassword> = 192.11.0.111 user <Password><![CDATA[xxxx]]></Password> </AuthenticationMethodPassword> = </SSHAuthentication> test ssh_auth_method </SFTPFragment> </ProtocolFragments> </Fragments> <Profiles> <Profile profile_id="192.11.0.111:4445"> = password password <Operation> <Copy> <CopySource> = xxxx [protocol_fragment_sftp@SFTP_192.11.0.111:4446] protocol <CopySourceFragmentRef> <LocalSource /> = sftp host </CopySourceFragmentRef> <SourceFileOptions> <Selection> = 192.11.0.111 user <FileSpecSelection> <FileSpec><![CDATA[.*\.(sh|gz)$]]></FileSpec> = sos ssh_auth_method <Directory><![CDATA[C:\tmp\agent_batch]]></Directory> = password password </FileSpecSelection> = </Selection> xxxx [protocol_fragment_sftp@SFTP_192.11.0.95:4445] protocol </SourceFileOptions> </CopySource> = sftp host <CopyTarget> <CopyTargetFragmentRef> <SFTPFragmentRef ref="SFTP_ 192.11.0.111:4445" /> 95 user </CopyTargetFragmentRef> <Directory><![CDATA[/home/test/tmp/]]></Directory> = sos ssh_auth_method </CopyTarget> = </Copy>password password </Operation> </Profile> <Profile profile_id="192.11.0.111:4446"> <Operation> <Copy> = xxxx [protocol_fragment_sftp@SFTP_192.11.0.95:4446] protocol <CopySource> <CopySourceFragmentRef> = sftp host <LocalSource /> </CopySourceFragmentRef> <SourceFileOptions> = 192.11.0.95 user <Selection> = <FileSpecSelection>test ssh_auth_method <FileSpec><![CDATA[.*\.(sh|gz)$]]></FileSpec> = password password <Directory><![CDATA[C:\tmp\agent_batch]]></Directory> </FileSpecSelection> = xxxx [protocol_fragment_sftp@SFTP_192.11.0.111:4448] protocol </Selection> </SourceFileOptions> </CopySource> = sftp host <CopyTarget> <CopyTargetFragmentRef> <SFTPFragmentRef ref="SFTP_= 192.11.0.111:4446" /> user </CopyTargetFragmentRef> <Directory><![CDATA[/home/sos/tmp/]]></Directory> = </CopyTarget> </Copy> </Operation> test ssh_auth_method </Profile> <Profile profile_id="192.11.0.95:4445"> <Operation> = <Copy>password password <CopySource> <CopySourceFragmentRef> = xxxx [192.11.0.111:4445] operation <LocalSource /> </CopySourceFragmentRef> = copy source_protocol <SourceFileOptions> <Selection> = local file_spec <FileSpecSelection> <FileSpec><![CDATA[= .*\.(sh|gz)$]]></FileSpec> source_dir = <Directory><![CDATA[C:\tmp\agent_batch]]></Directory> \Program Files (x86)\sos-berlin.com\jobscheduler\vg_4444\scheduler_data\config\batch_installer target_include </FileSpecSelection> = protocol_fragment_sftp@SFTP_192.11.0.111:4445 target_dir </Selection> </SourceFileOptions> </CopySource> <CopyTarget> = /home/test/tmp/ [192.11.0.111:4446] operation <CopyTargetFragmentRef> <SFTPFragmentRef ref="SFTP_192.11.0.95:4445" /> = copy source_protocol </CopyTargetFragmentRef> = local file_spec <Directory><![CDATA[/home/sos/tmp/]]></Directory> </CopyTarget> </Copy> </Operation> = .*\.(sh|gz)$ source_dir </Profile> <Profile profile_id="192.11.0.95:4446"> <Operation> = C:\Program <Copy> Files (x86)\sos-berlin.com\jobscheduler\vg_4444\scheduler_data\config\batch_installer target_include <CopySource> <CopySourceFragmentRef> = protocol_fragment_sftp@SFTP_192.11.0.111:4446 target_dir <LocalSource /> </CopySourceFragmentRef> = /home/sos/tmp/ [192.11.0.95:4445] operation <SourceFileOptions> <Selection> = copy source_protocol <FileSpecSelection> = local file_spec <FileSpec><![CDATA[.*\.(sh|gz)$]]></FileSpec> <Directory><![CDATA[C:\tmp\agent_batch]]></Directory> = .*\.(sh|gz)$ source_dir </FileSpecSelection> = C:\Program </Selection> Files (x86)\sos-berlin.com\jobscheduler\vg_4444\scheduler_data\config\batch_installer target_include </SourceFileOptions> </CopySource> <CopyTarget> = protocol_fragment_sftp@SFTP_192.11.0.95:4445 target_dir <CopyTargetFragmentRef> <SFTPFragmentRef ref="SFTP_= /home/sos/tmp/ [192.11.0.95:4446" /> ] operation </CopyTargetFragmentRef> <Directory><![CDATA[/home/test/tmp/]]></Directory> = </CopyTarget> copy source_protocol </Copy> </Operation> </Profile> <Profile profile_id="192.11.0.111:4448"> = local file_spec <Operation> <Copy> <CopySource> = .*\.(sh|gz)$ source_dir <CopySourceFragmentRef> <LocalSource /> = C:\Program </CopySourceFragmentRef> Files (x86)\sos-berlin.com\jobscheduler\vg_4444\scheduler_data\config\batch_installer target_include <SourceFileOptions> <Selection> = protocol_fragment_sftp@SFTP_192.11.0.95:4446 target_dir <FileSpecSelection> <FileSpec><![CDATA[.*\.(sh|gz)$]]></FileSpec> = /home/test/tmp/ [192.11.0.111:4448] operation <Directory><![CDATA[C:\tmp\agent_batch]]></Directory> = copy source_protocol </FileSpecSelection> = </Selection> local file_spec </SourceFileOptions> </CopySource> = .*\.(sh|gz)$ source_dir <CopyTarget> <CopyTargetFragmentRef> = C:\tmp\agent_batch target_include <SFTPFragmentRef ref="SFTP_192.11.0.111:4448" /> </CopyTargetFragmentRef> = protocol_fragment_sftp@SFTP_192.11.0.111:4448 target_dir <Directory><![CDATA[/home/test/tmp/]]></Directory> </CopyTarget> = </Copy> </Operation> </Profile> </Profiles> </Configurations> |
HINTS:
...
title | INI file |
---|---|
collapse | true |
...
/home/test/tmp/ |
Anchor | ||||
---|---|---|---|---|
|
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:
Open the Batch Installer configuration file in the XML Editor and assign 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 is used to specify parameters that will be applied to all Agent installations. If a parameter is specified in the <global>
element and in an individual <installation>
element then the setting for the individual element will overwrite the global setting.
The configuration file contains configurations for the four Agents whose installation was described in the Batch Installation - Use Cases - Multiple Instances article. The file also contains the configuration for the additional Agent that is to be installed in this example. The configuration for this Agent can easily be recognized by <installation lastRun="">
element tag, which is empty and therefore the only one that will be took into account by the Batch Installer.
The following configuration steps would need to be carried out to add the configuration for the additional Agent to this file:
- Leave the global parameters as they were set for your previous Use Case.
- Specify the installation parameters for the extra Agent installation:
- Set
lastRun
attribute to an empty value (for the<installations><installation>
element). This is the value that will make the Batch Installer just carry out this one additional installation and skip (i.e. not attempt to update) the rest. - 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 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
- Set
Info | ||
---|---|---|
| ||
|
The Batch Installer configuration file for the example can be downloaded here: batch_installer_config_file.xml and is 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:\Program |
...
Files (x86)\sos-berlin.com\jobscheduler\vg_4444\scheduler_data\config\batch_installer\yade_agent_batch_installer_settings.ini</settings> |
...
|
...
</transfer> <ssh> |
...
<auth_method>password</auth_method> <port>22</port> |
...
</ssh> <installation_file>jobscheduler_unix_universal_agent.1.10.2.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 |
...
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> |
Excerpt Include | ||||||
---|---|---|---|---|---|---|
|
Then XML Editor can be used to manage the installation configuration file and the YADE profiles for the transfer of the installation files as well.
Find more details from our XML Editor section.
- After download of the XML Editor, extract the zip file, then start "sos.xml.editor.exe"
- Open your installer configuration file and assign the XSD schema
scheduler_universal_agent_installations.xsd
Please see the following examples (one example for each file):