- 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-primaryoperating 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-primaryandcentostest-secondaryeach 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