Introduction
- The Controller can be installed on Linux systems without use of an installer by extracting a .tar.gz archive.
- The Controller can be installed on Windows systems:
- without use of an installer by extracting a .zip archive. This allows a portable installation which requires no administrative privileges.
- by running the Controller installer in headless mode or
- by running the graphical installer see JS7 - Controller - Using the Windows Graphical Installer.
Prerequisites
- A Java Runtime Environment starting from version 1.8 is required. For details see the Which Java versions is JobScheduler available for? article.
- It is necessary that a time service is operated on the server which hosts the Controller. This is to synchronize the system clock's time.
- Technically the Controller can be operated in any Unix environment. However, support for operation of the Controller is focused on Linux systems as described in the JS7 - Platforms article.
Download
- Download the Controller archive for the target system from the JS7 - Download page.
- For Unix systems:
- A .tar.gz archive is available that is extracted to create the Controller's directory structure (see below).
js7_controller_unix.<release>.tar.gz
- A .tar.gz archive is available that is extracted to create the Controller's directory structure (see below).
- For Windows systems:
- A .zip archive is available which will create the Controller's directory structure when it is extracted (see below).
js7_controller_windows.<release>.zip
- A .zip archive including the installer is available which can be used to run the installer in headless mode.
js7_controller_windows_installer.<release>.zip
- A .zip archive is available which will create the Controller's directory structure when it is extracted (see below).
- For Unix systems:
Installation Video
This video explains the installation.
Installation from the .tar.gz/.zip Archive
Installation
- Extract the downloaded archive to a directory.
- After extraction the resulting directory structure will include (only files and folders immediately relevant):
controller
license.gpl
(copy of GPLv3 (General Public License) used for the Open Source JS7 - License)license.html
(HTML format of license terms for the commercial JS7 - License)license.txt
(plain text format of license terms for the commercial JS7 - License)sbom.json
(JS7 - Software Bill of Materials)ThirdParty.txt
(list of 3rd party components and licenses used by JS7).version
(release information)bin
anonymize-logs.sh|.cmd
(used to anonymize log files, see JS7 - Log Anonymization)controller.sh|.cmd
(Start Script for Unix/Windows platforms)controller.service-example
(sample file for use with JS7 - systemd Service Files for automated Startup and Shutdown with Unix Systems)controller_instance.sh|.cmd-example
(Sample Instance Start Script to set individual environment variables. Drop the-example
extension to activate this file.)controller_watchdog.sh|.cmd
(restarts the Controller on Unix/Windows platforms if not operated as a Daemon/Service, called by Start Script)
lib
(directory for Java libraries)log4j2.xml
(used for based console logging to stdout, see JS7 - Logging)patches
(used for JS7 - Patches for Controller, the directory is cleaned up when running the installer)user_lib (
used for licensed binary code, see JS7 - How to apply a JS7 License Key)- (additional directories for Java libraries)
service
(directory for operation as a Windows Service)install_controller_windows_service.cmd
(used by installer)LICENSE.txt
(copy of Apache License, Version 2.0)NOTICE.txt
(Apache Commons Daemon license notice)RELEASE-NOTES.txt
(Apache Commons Daemon release notes)uninstall_controller_windows_service.cmd
(used by uninstaller)amd64
manager
x86
var
(data directory)config
(directory for configuration files)controller.conf
(general Controller configuration, see JS7 - Controller Configuration Items)lib
(optional directory for licensed binary code)license
(optional directory for license certificate files)private
(directory for security related configuration files)private.conf-example
(security related configuration)- For setting up JS7 - Controller HTTPS Connections
- For setting up authentication and digital signature checks
trusted-pgp-keys
(empty directory, can be used to add individual PGP public keys for signing, see JS7 - Secure Deployment of Scheduling Objects)trusted-x509-keys
(directory to hold X.509 certificates for signing, see JS7 - Secure Deployment of Scheduling Objects)sos.intermediate-ca.pem
(default certificate of SOS to allow deployment with JOC Cockpit)
logs
(directory for log files)state
(directory for journal files)work
(directory for work files)
- On Windows Systems:
- You have to modify the directory permissions for the above-mentioned
.\logs
and.\service
directories if you extract the Controller to, for example:C:\Program Files
.- This step is not required if you extract the Controller e.g. to
C:\ProgamData
. Start a command prompt with elevated administrative rights and execute, for example:
Allow full acces for "Users" on .\service and .\logs directoriescd "path\to\installation-directory" icacls "service" /L /grant *S-1-5-32-545:(OI)(CI)F icacls "logs" /L /grant *S-1-5-32-545:(OI)(CI)F
- This step is not required if you extract the Controller e.g. to
- You have to modify the directory permissions for the above-mentioned
- To start the Controller you can use the commands described in the JS7 - Controller - Command Line Operation article or your can automate startup using the instructions provided by the "Automated Startup and Shutdown" section below.
Customers with a commercial license wishing to cluster the JS7 Controller for high availability have to add the license key during initial operation, see the JS7 - Initial Operation for Controller Cluster article for more information.
Update and Upgrade
Detailed instructions for updating and upgrading can be found in the JS7 - Update and Patch Management article.
Preparation
- Stop the JS7 Controller instance.
- Prepare to rollback in case the update of the JS7 Controller is not successful:
- Make a backup of the Controller's installation and data directories by, for example, creating a .tar.gz/.zip archive.
- Installation Directory:
- The default installation directory for the Controller is:
/opt/sos-berlin.com/js7/controller/<controller-id>
for Unix systems,C:\Program Files\sos-berlin.com\js7\controller\<controller-id>
for Windows systems.
- The default installation directory for the Controller is:
- Data Directory
- The default data directory for the Controller is:
/home/sos/sos-berlin.com/js7/controller/<controller-id>
for Unix systems,C:\ProgramData\sos-berlin.com\js7\controller\<controller-id>
for Windows systems.
- The default data directory for the Controller is:
- Installation Directory:
- Make a backup of the Controller's installation and data directories by, for example, creating a .tar.gz/.zip archive.
Running the Update
The update of the JS7 Controller is performed from the same download archive as is used for any fresh installation.
- When extracting files to a location that has already been used then existing files with the same name will be overwritten. Files added by the user will remain in place.
- This is particularly true for the
./bin/controller.sh|cmd
Controller Start Script which should not be modified by users.
- This is particularly true for the
- The .tar.gz/.zip archive includes Java libraries in the
./lib
directory. This ships with file names that are unique to every Controller release.- Therefore, before extracting files, rename or remove an existing
./lib
directory in order to store libraries from the current Controller release only in this directory.
- Therefore, before extracting files, rename or remove an existing
Example for Installation from the Unix Command Line
The Controller is installed with a few straightforward commands:
# download archive (consider to use a current release) curl 'https://download.sos-berlin.com/JobScheduler.2.1/js7_controller_unix.2.1.1.tar.gz' --output js7_controller_unix.2.1.1.tar.gz # extract archive tar xvzf js7_controller_unix.2.1.1.tar.gz # find extracted files in the "controller" sub-directory ls -la controller # prepare an instance start script from the example cd controller/bin cp -p controller_instance.sh-example controller_instance.sh # optionally activate/adjust environment variables in controller_instance.sh # JS7_CONTROLLER_HTTP_PORT=4444 # JAVA_HOME=... # run the Controller ./controller_instance.sh start # find log output tail -100 ../var/logs/controller.log
Installation by Windows Installer in Headless Mode
The Controller installer is available for Windows systems only.
- To run the Windows installer in graphical mode see the JS7 - Controller - Installation Using the Windows Graphical Installer. article.
- Refer to the information below to run the Windows installer in headless mode.
Installation
After extraction of the installer .zip archive, the directory structure will include:
controller_install.xml
(installer response file)install_controller.txt
(installation notes)js7_controller_windows.<release>.jar
(installer library for a given release)license.txt, license.html
(copy of JS7 JobScheduler Commercial License Agreement)setup.cmd
(installer script)
Installer Response File
- The Controller installation uses the
controller_install.xml
response file, which includes parameters such as the installation path, ports, etc.- For a fresh installation the installer response file is included with the downloaded archive.
- The default location of the
controller
_install.xml
file from a previous installation is:C:\Program Files\sos-berlin.com\js7\controller\<controller-id>
- The
<controller-id>
is a unique identifier for a Controller which you specify from the installer response file:- You are free to choose an identifier, e.g.
controller-test
,controller-prod
if you intend to run a separate Controller for each environment. Upper case and lower case characters are observed, the characters a-z, A-Z, 0-9, underscore and hyphen are allowed. Spaces are not allowed in a Controller ID. - If you intend to operate a Controller cluster then both Controller instances have to use the same Controller ID.
- You are free to choose an identifier, e.g.
- Customers with a commercial license should choose the relevant license option and specify the location of the license key with the installer response file.
The
controller
_install.xml
file is explained in the code listing below. The comments included are intended to be self-explanatory.
Download: controller_install.xml
Running the Installer
Running the installer for the JS7 Controller on Windows systems:
Running the installer of JS7 Controller on Windows systemsC:\temp\controller.[release]> setup.cmd controller_install.xml
Directory Structure
After installation the resulting directory structure will be similar to that described in the Installation from .tar.gz/.zip Archive section above.
Directories for installation and configuration of the Controller might differ.
Update
Preparation
- Stop the JS7 Controller instance.
- Prepare to rollback if the update of the JS7 Controller is not successful.
- Make a backup of the Controller's installation and configuration directories by, for example, creating a .zip archive.
- Installation Directory:
- The default installation directory for the Controller instance is:
C:\Program Files\sos-berlin.com\js7\controller\<controller-id>
- The default installation directory for the Controller instance is:
- Configuration Directory
- The default configuration directory for the Controller instance is:
C:\ProgramData\sos-berlin.com\js7\controller\<controller-id>
- The default configuration directory for the Controller instance is:
- Installation Directory:
- Make a backup of the Controller's installation and configuration directories by, for example, creating a .zip archive.
Running the Update
The update procedure makes use of the same installer response file as described for a fresh installation.
Steps to run the installer are the same as described for a fresh installation.
Installation Log
The installer creates a log file in the directory specified in the JS7_CONTROLLER_LOGS
environment variable or in the logs
sub-folder of the Controller configuration directory.
- The default location of the
logs
directory for the Controller is:C:\ProgramData\sos-berlin.com\js7\controller\<controller-id>
- Installation log files are named according to the pattern
Install_V<release>_<date-time>_....log
, where<
release>
is the release number and<
date-time>
refers to the point in time of installation. - For further information about logging see the JS7 - Logging article.
Rollback
Rollback Installation from .tar.gz/.zip Archive
- To rollback the installation of a JS7 Controller instance, remove the newly created installation and configuration directories of the JS7 Controller.
- Restore the directories from a previous backup, e.g. by extracting the relevant .tar.gz/.zip backup archives to the installation and configuration directories.
Rollback Installation by Windows Installer in Headless Mode
- To perform the rollback of the JS7 Controller instance run the uninstaller from the command line.
- The default location of the
uninstall.cmd
file is:C:\Program Files\sos-berlin.com\js7\controller\<controller-id>\Uninstaller
- The default location of the
- Restore from a previous backup by, for example, extracting the .tar.gz/.zip archive to the installation directory and configuration directory.
- Re-install the Windows Service from the command line:
- Switch to the
.\bin
directory for the Controller from the command line.- The default location of the
.\bin
directory is:C:\Program Files\sos-berlin.com\js7\controller\<controller-id>\bin
- The default location of the
Run the following command to install the Controller's Windows Service.
controller.cmd
install
-service
- Switch to the
Automated Startup and Shutdown
For Unix systems startup and shutdown configurations apply that are executed by the root
account from, for example, /etc/init.d
scripts and by use of systemd
.
- Note the use of the
JS7_CONTROLLER_USER
environment variable from the./bin/controller_instance.sh
script to run a Controller which is started byroot
for a different user account. - For use with
systemd
find a sample service file from./bin/controller.service-example
. - For details see the JS7 - systemd Service Files for automated Startup and Shutdown with Unix Systems article.
For Windows systems operation of the Controller by a Windows Service is recommended as such services can be configured to start/stop automatically on server startup and shutdown.
- Consider assigning a service account to the JS7 Controller service with the Windows Service Panel.
- Consider allowing the JS7 Controller service to be automatically started on server startup.
Initial Operation
- Having completed the installation or update of a JS7 Controller you can start the Controller either manually or from its Unix daemon/Windows Service as described in the JS7 - Controller Command Line Operation article.
- Consider the following information about initial operation:
Further References
- Installation
- Operation
- Configuration