Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

...

Introduction

  • The JOC Cockpit can be installed on Linux and Windows systems without use of a graphical installer by running the JOC Cockpit installer in headless mode.
  • Technically the JOC Cockpit can be operated for any Unix environments, however, the JS7 - Platforms limit support by SOS for JOC Cockpit operation to Linux.

...

  • A Java Runtime Environment starting from version 1.8 is required. For details see Which Java versions is JobScheduler available for?
  • JOC Cockpit requires access to a database to store inventory information, status information and workflow related logs, see JS7 - Database.
  • Installation of JOC Cockpit requires administrative permissionsprivileges:
    • for Unix systems:
      • Root permissions are required if JOC Cockpit is to be installed including the Jetty servlet container.
      • To install JOC Cockpit without root permissions the setup script should be executed with the -u argument, otherwise the sudo prompt will ask for the root password.
    • for Windows systems:
      • The setup asks for administrative permissionsprivileges.

Download

  • Download the JOC Cockpit installer archive for your target environment from the JS7 - Download page.
    • For Unix systems:
      • A tarball .tar.gz archive including the installer is available that can be used to run the installer.
        • js7_joc_linux.<release>.tar.gz
    • For Windows systems:
      • A .zip archive including the installer is available that can be used to run the installer.
        • js7_joc_windows.<release>.zip
  • The .tar.gz/.zip archives can be used to install JOC Cockpit with the graphical installer or for headless installation with both 32 bit and 64 bit operating systems.

...

  • Extract the JOC Cockpit archive to a suitable directory such as /home/<user-account> on Unix systems or C:\usesuser\<user-accounton Windows systems.

The resulting installer directory layout looks like this:

  • hibernate-examples (directory for DBMS connection sample files, for details see JS7 - Database )
    • hibernate-integrated-security-mssql.cfg.xml
    • hibernate-maria-mysql.cfg.xml
    • hibernate-oracle12c.cfg.xml
    • hibernate-postgres.cfg.xml
  • install-joc.txt (installation notes)
  • joc.<release>.jar (installer library for a given release)
  • joc_install.xml (installer response file)
  • license.gpl (copy of  GPLv3 (General Public License) )
  • license.html, license.txt (copy of JS7 JobScheduler Commercial License Agreement)
  • setup.sh|cmd (installer script)

Installer Response File

  • The JOC Cockpit makes use of the joc_install.xml file that includes installer options such as installation pathdirectory, ports etc.
  • The joc_install.xml file is explained with the code listing below. The comments included are intended to be self-explanatory.
    Download: joc_install.xml

    Code Block
    languagexml
    titleConfiguration of the joc_install.xml file
    linenumberstrue
    collapsetrue
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!-- 
    XML configuration file for JOC Cockpit setup
    
    The JS7 JOC Cockpit is available with a dual license model:
    - GNU GPL v3.0 License, see https://www.gnu.org/licenses/gpl-3.0.en.html
    - JS7 Commercial License, see license.txt
    
    The setup asks you for the desired license model,
    see below <entry key="licenseOption" .../>
    
    If you run the installer and do not specify a commercial license key
    then at the same time you accept the terms of the
    license agreement under the GNU GPL v3.0 License.
    -->
    <AutomatedInstallation langpack="eng">
        <com.izforge.izpack.panels.UserInputPanel id="home">
            <userInput/>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="licenses">
            <userInput>
            
                <!-- Select the license model (GPL or Commercial) -->
                <entry key="licenseOption" value="GPL"/>
                
                <!-- If you selectedselect GPL as license model than the 'licenseFile' must be empty.
                     Otherwise please enter the path to the license file if available.
                     It is also possible to add the license file later. -->
                <entry key="licenseFile" value=""/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.HTMLLicencePanel id="gpl_license"/>
        <com.izforge.izpack.panels.HTMLLicencePanel id="commercial_license"/>
        <com.izforge.izpack.panels.TargetPanel id="target">
            
            <!-- SELECT THE INSTALLATION PATH
                 The path must be absolute! 
                 For example:
                 /opt/sos-berlin.com/js7/joc on Unix
                 C:\Program Files\sos-berlin.com\js7\joc on Windows -->
            <installpath>[:choose absolute installation path of JOC Cockpit:]</installpath>
            
        </com.izforge.izpack.panels.TargetPanel>
        <com.izforge.izpack.panels.UserInputPanel id="jetty">
            <userInput>
                
                <!-- JOC Cockpit requires a servlet container such as Jetty. 
                     If a servlet container is already installed then you can use it. 
                     Otherwise a Jetty will be installed if withJettyInstall=yes.
                     You need root permissions to install JOC Cockpit with Jetty. -->
                <entry key="withJettyInstall" value="yes"/>
                <entry key="jettyPort" value="4446"/>
                <!-- Specify the name of the Windows Service or Unix Daemon (default: joc).
                     Required only for multiple instances of JOC Cockpit on the same server. 
                     The name has to be unique per server. This entry is deactivated by a comment because it
                     MUST NOT BE MODIFIED DURING RE-INSTALLATION! -->
                <!--
                <entry key="jettyServiceName" value="joc"/>
                -->
                <!-- Required for Windows only -->
                <entry key="jettyStopPort" value="40446"/>
                <!-- Available for Unix only (root permissions required) -->
                <entry key="withJocInstallAsDaemon" value="yes"/>
                <!-- Enter a user account for running JOC Cockpit (default=current user).
                     For Unix only (root permissions required)!!! -->
                <entry key="runningUser" value=""/>
                <!-- Path to Jetty base directory 
                     For example:
                     /home/[user]/sos-berlin.com/js7/joc on Unix
                     C:\ProgramData\sos-berlin.com\js7\joc on Windows -->
                <entry key="jettyBaseDir" value=""/>
                <!-- Choose 'yes' or 'no' whether the JOC Cockpit's Jetty should be (re)started after installation -->
                <entry key="launchJetty" value="yes"/>
                
                <!-- Java options for Jetty -->
                <!-- Initial memory pool (-Xms) in MB -->
                <entry key="jettyOptionXms" value="128"/>
                <!-- Maximum memory pool (-Xmx) in MB -->
                <entry key="jettyOptionXmx" value="512"/>
                <!-- Thread stack size (-Xss) in KB -->
                <entry key="jettyOptionXss" value="4000"/>
                <!-- Further Java options -->
                <entry key="jettyOptions" value=""/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="joc">
            <userInput>
                
                <!-- JOC Cockpit can be installed in a cluster. Please type a unique title to identify the cluster node, 
                     e.g. 'Primary' or 'Secondary' (default = hostname). Max. length is 30 characters. -->
                <entry key="jocTitle" value=""/>
                
                <!-- Choose 'yes' if JOC Cockpit is operated as a standby instance in a cluster -->
                <entry key="isStandby" value="no"/>
                
                <!-- Security Level for the deployment signing mechanism: possible values are 'LOW', 'MEDIUM' and 'HIGH':
                     HIGH:
                        RSA/ECDSA certificates are stored for verification per user,
                        signing is performed externally outside of JOC Cockpit.
                     MEDIUM:
                        RSA/ECDSA private keys and certificates are stored for signing per user,
                        signing is performed automatically with the user's private key.
                     LOW:
                        a single RSA/ECDSA private key and certificate are stored with the root account,
                        signing is performed automatically with the root account's private key for all users. -->
                <entry key="securityLevel" value="LOW"/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="database">
            <userInput>
                <!-- Reporting Database Configuration -->
                
                <!-- Database connection settings can be specified with subsequent entries such as
                     databaseHost, databasePort, ... or by a Hibernate configuration file.
                     or you choose the embedded H2 database (for evaluation only) without further configuration.
                     Possible values are 'withoutHibernateFile', 'withHibernateFile' and 'h2'. -->
                <entry key="databaseConfigurationMethod" value="withoutHibernateFile"/>
                     
                <!-- Choose the database management system. 
                     Supported values are 'mysql' for MySQL, 'oracle' for Oracle, 
                     'mssql' for Microsoft SQL Server, 'pgsql' for PostgreSQL.
                     Used only if databaseConfigurationMethod=withoutHibernateFile -->
                <entry key="databaseDbms" value="mysql"/>
                
                <!-- Path to a Hibernate configuration file if databaseConfigurationMethod=withHibernateFile -->
                <entry key="hibernateConfFile" value=""/>
                
                <!-- You can choose between 'byInstaller', 'byJoc' or 'off' to create the database objects.
                     Data of an already existing installation remain unchanged. 
                     This entry should be 'off' only when you are certain that all objects have already been created.
                     'byJoc' creates or updates database object the next time JOC Cockpit is started. 'byInstaller' is recommended.
                     If databaseConfigurationMethod=h2 then the objects will be created when JOC Cockpit starts and 
                     this value will be ignored -->
                <entry key="databaseCreateTables" value="byInstaller"/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="dbconnection">
            <userInput>
                <!-- Database configuration if databaseConfigurationMethod=withoutHibernateFile -->
                     
                <!-- Enter the hostname or ip address of the database host.
                     This entry can also be used to configure the URL(s) for Oracle RAC databases.
                     For example:
                     <entry key="databaseHost" value="(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON)
                        (ADDRESS=(PROTOCOL=TCP)(HOST=tst-db1.myco.com)(PORT=1604))
                        (ADDRESS=(PROTOCOL=TCP)(HOST=tst-db2.myco.com)(PORT=1604)))
                        (CONNECT_DATA=(SERVICE_NAME=mydb1.myco.com)(SERVER=DEDICATED)))"/>
                     The "databaseSchema" and "databasePort" entries should be left empty. -->
                <entry key="databaseHost" value=""/>
                
                <!-- Enter the port number for the database instance. Default ports are for MySQL 3306, 
                     Oracle 1521, Microsoft SQL Server 1433, PostgreSQL 5432. -->
                <entry key="databasePort" value=""/>
                
                <!-- Enter the database schema -->
                <entry key="databaseSchema" value=""/>
                
                <!-- Enter the user account for database access -->
                <entry key="databaseUser" value=""/>
                
                <!-- Enter the password for database access -->
                <entry key="databasePassword" value=""/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="jdbc">
            <userInput>
                <!-- Database configuration if databaseConfigurationMethod != h2 -->
                
                <!-- You can specify an external JDBC Driver, in this case set internalConnector=no
                     For license reasons MySQL and Microsoft SQL Server JDBC drivers are not included. 
                     Alternatively you can use the MariaDB JDBC Driver for MySQL that is included. 
                     For Microsoft SQL Server you have to specify an external JDBC Driver. 
                     An Oracle ojdbc8 JDBC driver is included. -->
                     
                <!-- You can choose between 'yes' or 'no' for using the internal JDBC Driver -->
                <entry key="internalConnector" value="yes"/>
                     
                <!-- Select the path to the JDBC Driver file (*.jar) -->
                <entry key="connector" value=""/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="end">
            <userInput/>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.InstallPanel id="install"/>
        <com.izforge.izpack.panels.ProcessPanel id="process"/>
        <com.izforge.izpack.panels.FinishPanel id="finish"/>
    </AutomatedInstallation>
    

...

  • Performing headless installation of JOC Cockpit on Unix systems with root permissions

    Code Block
    languagetext
    titleStarting headless installation of the JOC Cockpit on Unix systems with root permissions
    /home/<user-account>/joc.<release> ./setup.sh joc_install.xml
  • Performing headless installation of JOC Cockpit on Unix systems without root permissions

    Code Block
    languagetext
    titleStarting headless installation of the JOC Cockpit on Unix systems without root permissions
    /home/<user-account>/joc.<release> ./setup.sh -u joc_install.xml
  • Performing headless installation of JOC Cockpit on Windows systems

    Code Block
    languagetext
    titleStarting headless installation of the JOC Cockpit on Windows systems
    C:\users\<user-account>\joc.<release> setup.cmd joc_install.xml

...

Directory Layout

If the Jetty servlet container included with JOC Cockpit is installed then files will be added by default

  • for Unix to the
    • installation directory: /
    var
    • opt/sos-berlin.com/js7/joc
    and /opt
    • configuration directory: /var/sos-berlin.com/js7/joc
    directories,
  • for Windows to theProgramData
    • installation directory:  Program Files\sos-berlin.com\js7\joc
    and Program Files
    • configuration directory: ProgramData\sos-berlin.com\js7\joc
    directories.

The following listing explains the directory layout after installation of JOC Cockpit:

  • /var opt(Unix) ProgramData Program Files (Windows)
    • sos-berlin.com
      • js7
        • joc (installation directory)
          • install (directory with Jetty installer scripts)
            • install_jetty_base.cmd
            • update_jetty_base.cmdarchive 
          • jetty (directory for Jetty binary files and scripts)
          • jetty_base (symbolic link to configuration directory)
          • service (directory for operation as a Windows Service)
          • Uninstaller (Uninstaller directory, the empty directory remains in place after uninstall)
            • uninstall.sh|cmd
            • uninstaller.jar
          • .jocinstallinformation (installation response file, remains in place after uninstall)
          • joc_install.xml (installer response file, remains in place after uninstall)
  • /var (Unix)ProgramData (Windows)
    • sos-berlin.com
      • js7
        • joc
          • jetty_base (configuration directory)
            • archive 
            • with files, remains after uninstall)
            • lib (directory with files, remains after uninstall)
            • logs (directory with files, remains after uninstall)
            • patches (directory with files, remains after uninstall)
            • resources (remains after uninstall and (empty) after full uninstall)joc (directory with files, remains after uninstall)
            • license lib (directory with files, remains after uninstall)
            • xsd logs (directory with files, remains after uninstall)hibernate
            • .cfg.xml (patches (directory with files, remains after uninstall if modified)joc
            • .properties resources (remains after uninstall and (empty) after full uninstall)
              • joc (directory with files, )
              • log4j2.xml (remains after uninstall if modified)
              • shiro.ini.active ( remains after uninstall)
              • shiro.ini-example (only added if shiro.ini file is found)
            temp (directory with start.ini (file
                • license (directory for license certificate files, remains after uninstall)
          • webapps
                • xsd (directory for XSD schemas, remains after uninstall)
    /opt (Unix) Program Files (Windows)
                • hibernate.cfg.xml (Hibernate configuration file for database access, remains after uninstall if modified)
                • joc.properties (JOC Cockpit configuration file, remains after uninstall)
                • log4j2.xml (Log remains after uninstall if modified)
                • shiro.ini.active (remains after uninstall)
                • shiro.ini-example (only added if shiro.ini file is found)
          • temp (directory with files
    • sos-berlin.com
      • js7
        • joc
          • install (directory with files)
            • install_jetty_base.cmd
            • update_jetty_base.cmd
          • jetty (directory with files)
          • jetty_base (symlink)
          • service
          • Uninstaller (directory, the empty remains after uninstall and full uninstall)
            • uninstall.sh|cmd
            • uninstaller.jar
          • .jocinstallinformation (file, remains after uninstall)joc_install.xml 
          • webapps
          • start.ini (Jetty servlet container configuration ( file, remains after uninstall)



Directory Layout if the Jetty Servlet Container is not Installed

...

The JOC Cockpit installation procedure contains the option to install the Jetty servlet container included with the JOC Cockpit installer archive. An alternative servlet container that is capable of handling Java web applications, such as Tomcat, can be used, however, support by SOS is limited to the JOC Cockpit application and does not include support for individually installed servlet containers.

If the Jetty servlet container included with JOC Cockpit is not to be installed, then the installer will check if a jetty_base symlink from a previous installation is found in the jetty_home directory. Particularly relevant for system administrators is the shiro.ini.active file (containing authentication and authorization informationsettings) and the joc.properties file (containing e.g. database configuration information).

...

With a fresh installation the installer will not find an existing Jetty servlet container and will store the resources directory by default to the following locatinlocation:

  • for Unix systems:
    • /opt/sos-berlin.com/js7/joc/resources/joc
  • for Windows systems:
    • C:\Program Files\sos-berlin.com\js7\joc\resources\joc

...