- Created by Andreas Püschel, last modified on Apr 22, 2023
Introduction
In the JS7 - Deployment process a Deployment Descriptor specifies
- which JS7 products of JOC Cockpit, Controller instances and Agents should be installed,
- where to install each JS7 product,
- which installation options to use, for example the installation directory,
- which configuration options to use, for example port usage.
Deployment Descriptors are specified from files in JSON format and include instructions, for example to deploy a larger number of Agents on target machines.
The JS7 - Deployment Packaging makes use of the Deployment Descriptor to install and to package JS7 products.
Deployment Descriptor
Deployment Descriptors are specified from .json files.
- Users are strongly encouraged to validate their .json files against the Deployment Descriptor Schema, see JS7 - Deployment Descriptor JSON Schema.
- The basic structure includes to specify an array of Agent, Controller and JOC Cockpit objects.
Examples
Agent, Standalone Controller and JOC Cockpit using HTTP Connections
The Deployment Descriptor specifies a complete job scheduling environment including
- Host
centostest-primary
operating an Agent, a Standalone Controller instance and JOC Cockpit instance. - All products use HTTP connections.
Download example: standalone-joc-controller-agent-http-2022-12-04.descriptor.json
Example for Deployment Descriptor Expand source
{ "descriptor": { "descriptorId": "standalone-joc-controller-agent-http-2022-12-04", "title": "Install or update JOC Cockpit, Controller and Agent Standalone instances using HTTP connections", "account": "sosap", "scheduled": "2022-12-02T05:19:12.000+00:00", "created": "2022-11-30T22:19:12.000+00:00" }, "agents": { "controllerRefs": [ { "controllerId": "controller", "members": [ { "agentId": "agent_001", "target": { "connection": { "host": "centostest-primary", "port": 22 }, "authentication": { "method": "publickey", "user": "sos", "keyFile": "/home/sos/.ssh/sos_rsa" }, "packageLocation": "/tmp", "execPre": "StopService", "execPost": "StartService", "makeService": true }, "media": { "release": "2.5.3", "tarball": "2.5.3/js7_agent_unix.2.5.3.tar.gz" }, "installation": { "home": "/opt/sos-berlin.com/js7/agent-primary", "data": "/var/sos-berlin.com/js7/agent-primary", "httpPort": "31445", "javaHome": "/opt/java/jdk8u202-b08" } }, { "agentId": "agent_002", "target": { "connection": { "host": "centostest-secondary", "port": 22 }, "authentication": { "method": "publickey", "user": "sos", "keyFile": "/home/sos/.ssh/sos_rsa" }, "packageLocation": "/tmp", "execPre": "StopService", "execPost": "StartService", "makeService": true }, "media": { "release": "2.5.3", "tarball": "2.5.3/js7_agent_unix.2.5.3.tar.gz" }, "installation": { "home": "/opt/sos-berlin.com/js7/agent-secondary", "data": "/var/sos-berlin.com/js7/agent-secondary", "httpPort": "32445", "javaHome": "/opt/java/jdk8u202-b08" } } ] } ] }, "controllers": [ { "jocRef": "joc", "controllerId": "controller", "primary": { "target": { "connection": { "host": "centostest-primary", "port": 22 }, "authentication": { "method": "publickey", "user": "sos", "keyFile": "/home/sos/.ssh/sos_rsa" }, "packageLocation": "/tmp", "execPre": "StopService", "execPost": "StartService", "makeService": true }, "media": { "release": "2.5.3", "tarball": "2.5.3/js7_controller_unix.2.5.3.tar.gz" }, "installation": { "home": "/opt/sos-berlin.com/js7/controller-standalone", "data": "/var/sos-berlin.com/js7/controller-standalone", "httpPort": "21444", "javaHome": "/opt/java/jdk8u202-b08", "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom" } } } ], "joc": [ { "members": { "clusterId": "joc", "instances": [ { "instanceId": 1, "target": { "connection": { "host": "centostest-primary", "port": 22 }, "authentication": { "method": "publickey", "user": "sos", "keyFile": "/home/sos/.ssh/sos_rsa" }, "packageLocation": "/tmp", "execPre": "StopService", "execPost": "StartService", "makeService": true }, "media": { "release": "2.5.3", "tarball": "2.5.3/js7_joc_linux.2.5.3.tar.gz" }, "installation": { "setupDir": "/tmp/sos-berlin.com/js7/joc-standalone.setup", "isUser": true, "isPreserveEnv": true, "home": "/opt/sos-berlin.com/js7/joc-standalone", "data": "/var/sos-berlin.com/js7/joc-standalone", "httpPort": "11446", "dbmsConfig": "joc/templates/dbms/h2/response/hibernate.cfg.xml", "dbmsDriver": "joc/templates/dbms/h2/response/h2-1.4.200.jar", "javaHome": "/opt/java/jdk-11.0.2+9", "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom" }, "configuration": { "templates": [ "joc/templates/http/resources" ], "startFiles": { "httpIni": "joc/templates/http/start.d/http.ini", "httpsIni": "joc/templates/http/start.d/https.ini", "sslIni": "joc/templates/http/start.d/ssl.ini" } } } ] } } ], "version": "1.5.3" }
Agents, Controller Cluster and JOC Cockpit Cluster using HTTPS Connections
The Deployment Descriptor specifies a complete job scheduling environment including
- Host
centostest-primary
andcentostest-secondary
each operate an Agent, a Controller instance and a JOC Cockpit instance. - Controller and JOC Cockpit instances on both hosts act as a cluster. Use of clustering includes to deploy a JS7 license.
- All products use HTTPS connections and are equipped with certificates.
Download example: cluster-joc-controller-agent-https-2022-12-04.descriptor.json
Example for Deployment Descriptor Expand source
{ "descriptor": { "descriptorId": "cluster-joc-controller-agent-https-2022-12-04", "title": "Install or update JOC Cockpit, Controller and Agent Cluster instances using HTTPS connections", "account": "sosap", "scheduled": "2022-12-02T06:19:12+01:00", "created": "2022-11-30T23:19:12+01:00" }, "license": { "licenseKeyFile": "licenses/sos.pem", "licenseBinFile": "licenses/js7-license.jar" }, "agents": { "controllerRefs": [ { "controllerId": "controller", "members": [ { "agentId": "agent_001", "target": { "connection": { "host": "centostest-primary", "port": 22 }, "authentication": { "method": "publickey", "user": "sos", "keyFile": "/home/sos/.ssh/sos_rsa" }, "packageLocation": "/tmp", "execPre": "StopService", "execPost": "StartService", "makeService": true }, "media": { "release": "2.5.3", "tarball": "2.5.3/js7_agent_unix.2.5.3.tar.gz" }, "installation": { "home": "/opt/sos-berlin.com/js7/agent-primary", "data": "/var/sos-berlin.com/js7/agent-primary", "httpPort": "localhost:31445", "httpsPort": "centostest-primary.sos:31443", "javaHome": "/opt/java/jdk8u202-b08" }, "configuration": { "certificates": { "keyStore": "agents/instances/agent_001/config/private/https-keystore.p12", "keyStorePassword": "jobscheduler", "keyPassword": "jobscheduler", "trustStore": "agents/instances/agent_001/config/private/https-truststore.p12", "trustStorePassword": "jobscheduler" }, "templates": [ "agents/templates/https/config" ] } }, { "agentId": "agent_002", "target": { "connection": { "host": "centostest-secondary", "port": 22 }, "authentication": { "method": "publickey", "user": "sos", "keyFile": "/home/sos/.ssh/sos_rsa" }, "packageLocation": "/tmp", "execPre": "StopService", "execPost": "StartService", "makeService": true }, "media": { "release": "2.5.3", "tarball": "2.5.3/js7_agent_unix.2.5.3.tar.gz" }, "installation": { "home": "/opt/sos-berlin.com/js7/agent-secondary", "data": "/var/sos-berlin.com/js7/agent-secondary", "httpPort": "localhost:32445", "httpsPort": "centostest-secondary.sos:32443", "javaHome": "/opt/java/jdk8u202-b08" }, "configuration": { "certificates": { "keyStore": "agents/instances/agent_002/config/private/https-keystore.p12", "keyStorePassword": "jobscheduler", "keyPassword": "jobscheduler", "trustStore": "agents/instances/agent_002/config/private/https-truststore.p12", "trustStorePassword": "jobscheduler" }, "templates": [ "agents/templates/https/config" ] } } ] } ] }, "controllers": [ { "controllerId": "controller", "jocRef": "joc", "primary": { "target": { "connection": { "host": "centostest-primary", "port": 22 }, "authentication": { "method": "publickey", "user": "sos", "keyFile": "/home/sos/.ssh/sos_rsa" }, "packageLocation": "/tmp", "execPre": "StopService", "execPost": "StartService", "makeService": true }, "media": { "release": "2.5.3", "tarball": "2.5.3/js7_controller_unix.2.5.3.tar.gz" }, "installation": { "home": "/opt/sos-berlin.com/js7/controller-primary", "data": "/var/sos-berlin.com/js7/controller-primary", "httpPort": "localhost:21444", "httpsPort": "centostest-primary.sos:21443", "javaHome": "/opt/java/jdk8u202-b08", "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom" }, "configuration": { "certificates": { "cert": "controllers/instances/controller.primary/config/private/centostest-primary.crt", "keyStore": "controllers/instances/controller.primary/config/private/https-keystore.p12", "keyStorePassword": "jobscheduler", "keyPassword": "jobscheduler", "keyAlias": "centostest-primary", "trustStore": "controllers/instances/controller.primary/config/private/https-truststore.p12", "trustStorePassword": "jobscheduler" }, "templates": [ "controllers/templates/https.primary/config" ] } }, "secondary": { "target": { "connection": { "host": "centostest-secondary", "port": 22 }, "authentication": { "method": "publickey", "user": "sos", "keyFile": "/home/sos/.ssh/sos_rsa" }, "packageLocation": "/tmp", "execPre": "StopService", "execPost": "StartService", "makeService": true }, "media": { "release": "2.5.3", "tarball": "2.5.3/js7_controller_unix.2.5.3.tar.gz" }, "installation": { "home": "/opt/sos-berlin.com/js7/controller-secondary", "data": "/var/sos-berlin.com/js7/controller-secondary", "httpPort": "localhost:22444", "httpsPort": "centostest-secondary.sos:22443", "javaHome": "/opt/java/jdk8u202-b08", "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom" }, "configuration": { "certificates": { "cert": "controllers/instances/controller.secondary/config/private/centostest-secondary.crt", "keyStore": "controllers/instances/controller.secondary/config/private/https-keystore.p12", "keyStorePassword": "jobscheduler", "keyPassword": "jobscheduler", "trustStore": "controllers/instances/controller.secondary/config/private/https-truststore.p12", "trustStorePassword": "jobscheduler" }, "templates": [ "controllers/templates/https.secondary/config" ] } } } ], "joc": [ { "members": { "clusterId": "joc", "instances": [ { "instanceId": 1, "target": { "connection": { "host": "centostest-primary", "port": 22 }, "authentication": { "method": "publickey", "user": "sos", "keyFile": "/home/sos/.ssh/sos_rsa" }, "packageLocation": "/tmp", "execPre": "StopService", "execPost": "StartService", "makeService": true }, "media": { "release": "2.5.3", "tarball": "2.5.3/js7_joc_linux.2.5.3.tar.gz" }, "installation": { "setupDir": "/tmp/sos-berlin.com/js7/joc-primary.setup", "home": "/opt/sos-berlin.com/js7/joc-primary", "data": "/var/sos-berlin.com/js7/joc-primary", "httpPort": "localhost:11446", "httpsPort": "centostest-primary.sos:11443", "dbmsConfig": "joc/templates/dbms/mysql/response/hibernate.cfg.xml", "isUser": true, "isPreserveEnv": true, "javaHome": "/opt/java/jdk-11.0.2+9", "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom" }, "configuration": { "certificates": { "cert": "joc/instances/joc.primary/resources/centostest-primary.crt", "keyStore": "joc/instances/joc.primary/resources/https-keystore.p12", "keyStorePassword": "jobscheduler", "keyPassword": "jobscheduler", "trustStore": "joc/instances/joc.primary/resources/https-truststore.p12", "trustStorePassword": "jobscheduler" }, "startFiles": { "httpIni": "joc/templates/https/start.d/http.ini", "httpsIni": "joc/templates/https/start.d/https.ini", "sslIni": "joc/templates/https/start.d/ssl.ini" }, "templates": [ "joc/templates/https/resources" ] } }, { "instanceId": 2, "target": { "connection": { "host": "centostest-secondary", "port": 22 }, "authentication": { "method": "publickey", "user": "sos", "keyFile": "/home/sos/.ssh/sos_rsa" }, "packageLocation": "/tmp", "execPre": "StopService", "execPost": "StartService", "makeService": true }, "media": { "release": "2.5.3", "tarball": "2.5.3/js7_joc_linux.2.5.3.tar.gz" }, "installation": { "setupDir": "/tmp/sos-berlin.com/js7/joc-secondary.setup", "home": "/opt/sos-berlin.com/js7/joc-secondary", "data": "/var/sos-berlin.com/js7/joc-secondary", "httpPort": "localhost:12446", "httpsPort": "centostest-secondary.sos:12443", "dbmsConfig": "joc/templates/dbms/mysql/response/hibernate.cfg.xml", "isUser": true, "isPreserveEnv": true, "javaHome": "/opt/java/jdk-11.0.2+9", "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom" }, "configuration": { "certificates": { "cert": "joc/instances/joc.secondary/resources/centostest-secondary.crt", "keyStore": "joc/instances/joc.secondary/resources/https-keystore.p12", "keyStorePassword": "jobscheduler", "keyPassword": "jobscheduler", "trustStore": "joc/instances/joc.secondary/resources/https-truststore.p12", "trustStorePassword": "jobscheduler" }, "startFiles": { "httpIni": "joc/templates/https/start.d/http.ini", "httpsIni": "joc/templates/https/start.d/https.ini", "sslIni": "joc/templates/https/start.d/ssl.ini" }, "templates": [ "joc/templates/https/resources" ] } } ] } } ] }
Resources
- No labels
Overview
Content Tools