Page History
Table of Contents |
---|
Introduction
In the JS7 - Deployment process a Deployment Descriptor specifies
- which JS7 components products of JOC Cockpit, Controller instances and Agents should be installed,
- where to install each JS7 componentproduct,
- 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 Script makes use of the Deployment Descriptor to install and to package JS7 componentsproducts.
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_v1.0.jsonDescriptor 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 components products use HTTP connections.
Download example: agentstandalone-joc-controller-jocagent-http-2022-12-04.descriptor.json
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "descriptor": { "descriptorId": "agentstandalone-joc-controller-jocagent-http-2022-12-2022120404", "title": "Install or update JOC AgentCockpit, Controller and Agent JOCStandalone Cockpitinstances using HTTP connections", "account": "sossosap", "scheduled": "2022-12-02T0602T05:19:12.000+0100:00", "created": "2022-11-30T2330T22:19:12.000+0100:00" }, "agents": [{ "controllerRefs": [ { { "agent_001controllerId": {"controller", "members": [ "target": { "agentId": "agent_001", "connectiontarget": { "connection": { "host": "centostest-primary", "port": 22 }, "authentication": { "method": "publickey", "user": "sos", "keyFile": "/home/sos/.ssh/sos_rsa" }, "packageLocation": "/tmp", "execPre": "StopService"sudo, systemctl stop js7_agent.service", "execPost": "StartService", "execPostmakeService": "sudo systemctl start js7_agent.service" true }, "media": { "release": "2.5.03", "tarball": "/mnt/releases/scheduler_setups/2.5.03/js7_agent_unix.2.5.03.tar.gz" }, "installation": { "home": "/homeopt/sos-berlin.com/js7.target/opt/agent-primary", "data": "/homevar/sos-berlin.com/js7.target/var/agentagent-primary", "httpPort": "31445", },"javaHome": "/opt/java/jdk8u202-b08" "configuration": {} }, "controller": { "agentId": "agent_002", "controllerIdtarget": "testsuite"{ }, "connection": { "templateshost": ["centostest-secondary", "port": 22 "agents/templates/https/config" }, "authentication": ]{ } "method": "publickey", } "user": "sos", } ], "controllerskeyFile": [ "/home/sos/.ssh/sos_rsa" {}, "testsuitepackageLocation": {"/tmp", "primaryexecPre": {"StopService", "execPost": "StartService", "targetmakeService": {true }, "connectionmedia": { "release": "2.5.3", "hosttarball": "centostest-primary",2.5.3/js7_agent_unix.2.5.3.tar.gz" }, "installation": { "port": 22 "home": "/opt/sos-berlin.com/js7/agent-secondary", }, "data": "/var/sos-berlin.com/js7/agent-secondary", "httpPort": "32445", "authenticationjavaHome": {"/opt/java/jdk8u202-b08" } } "method": "publickey", ] } ] }, "controllers": [ { "jocRef": "joc", "usercontrollerId": "soscontroller", "primary": { "target": { "connection": { "keyFilehost": "/home/sos/.ssh/sos_rsa"centostest-primary", "port": 22 }, "authentication": { "packageLocationmethod": "/tmppublickey", "user": "sos", "execPrekeyFile": "sudo systemctl stop js7_controller.service",/home/sos/.ssh/sos_rsa" }, "execPostpackageLocation": "sudo systemctl start js7_controller.service"/tmp", }"execPre": "StopService", "execPost": "StartService", "mediamakeService": {true }, "media": { "release": "2.5.03", "tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_2.5.3/js7_controller_unix.2.5.03.tar.gz" }, "installation": { "home": "/homeopt/sos-berlin.com/js7.target/opt/controller-primarystandalone", "data": "/homevar/sos-berlin.com/js7.target/var/controller-primarystandalone", "httpPort": "21444", }, "javaHome": "/opt/java/jdk8u202-b08", "configurationjavaOptions": { "-Xmx256m -Djava.security.egd=file:///dev/urandom" } } } ], "templatesjoc": [ { "members": { "clusterId": "joc", "controllers/templates/https.primary/config"instances": [ { ]"instanceId": 1, "target": { } "connection": { } }"host": "centostest-primary", } ], "jocport": [ 22 {}, "joc_001authentication": { "primarymethod": { "publickey", "targetuser": { "sos", "connectionkeyFile": {"/home/sos/.ssh/sos_rsa" }, "hostpackageLocation": "centostest-primary/tmp", "execPre": "StopService", "portexecPost": 22"StartService", "makeService": true }, "media": { "authenticationrelease": {"2.5.3", "tarball": "2.5.3/js7_joc_linux.2.5.3.tar.gz" "method": "publickey"}, "installation": { "usersetupDir": "/tmp/sos-berlin.com/js7/joc-standalone.setup", "isUser": true, "keyFileisPreserveEnv": "/home/sos/.ssh/sos_rsa"true, "home": "/opt/sos-berlin.com/js7/joc-standalone", }, "data": "/var/sos-berlin.com/js7/joc-standalone", "packageLocationhttpPort": "/tmp11446", "execPredbmsConfig": "sudo systemctl stop js7_joc.servicejoc/templates/dbms/h2/response/hibernate.cfg.xml", "dbmsDriver": "joc/templates/dbms/h2/response/h2-1.4.200.jar", "execPost": "sudo systemctl start js7_joc.service" "javaHome": "/opt/java/jdk-11.0.2+9", "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom" }, }, "mediaconfiguration": { "templates": [ "release": "2.5.0", "joc/templates/http/resources" ], "tarballstartFiles": { "/mnt/releases/scheduler_setups/2.5.0/js7_joc_linux.2.5.0.tar.gz"httpIni": "joc/templates/http/start.d/http.ini", }, "httpsIni": "joc/templates/http/start.d/https.ini", "installationsslIni": { "joc/templates/http/start.d/ssl.ini" } "setupDir": "/home/sos/js7.target/opt/joc-primary.setup", } } ] "home": "/home/sos/js7.target/opt/joc-primary", } } "data], "version": "/home/sos/js7.target/var/joc-primary", "httpPort": "11446", 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
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "descriptor": { "descriptorId": "cluster-joc-controller-agent-https-2022-12-04", "isUsertitle": true, "Install or update JOC Cockpit, Controller and Agent Cluster instances using HTTPS connections", "isPreserveEnvaccount": true"sosap", "scheduled": "2022-12-02T06:19:12+01:00", "javaOptionscreated": "2022-Xmx512m -Djava.security.egd=file:///dev/urandom11-30T23:19:12+01:00" }, "license": { "licenseKeyFile": }, "licenses/sos.pem", "licenseBinFile": "licenses/js7-license.jar" }, "agents": { "configurationcontrollerRefs": {[ { "responseDircontrollerId": "joc/instances/joc_001.primary/responsecontroller", "templates"members": [ { "joc/templates/https/resources" "agentId": "agent_001", ] "target": }{ } } "connection": { } ] } |
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 components use HTTPS connections and are equipped with certificates.
Download example: agent-controller-joc-https-2022-12-04.json
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "descriptor": { "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", "descriptorIdtrustStorePassword": "joc-controller-agents-all-20221204", jobscheduler" "title": "Install or update Agent, Controller and JOC Cockpit using HTTPS connections", }, "account": "sos", "scheduledtemplates": "2022-12-02T06:19:12+01:00",[ "created": "2022-11-30T23:19:12+01:00" }, "license": { "licenseKeyFile": "licenses/sos.pem", agents/templates/https/config" "licenseBinFile": "licenses/js7-license.jar" }, "certificates": { "controller": {] "primaryControllerCert": "controllers/instances/testsuite.primary/config/private/centostest-primary.crt", } "secondaryControllerCert": "controllers/instances/testsuite.secondary/config/private/centostest-secondary.crt" }, "joc": { }, "primaryJocCert": "joc/instances/joc_001.primary/resources/centostest-primary.crt", { "secondaryJocCert": "joc/instances/joc_001.primary/resources/centostest-secondary.crt" } }, "agentsagentId": [ "agent_002", { "agent_001target": { "target": { "connection": { "connection": { "host": "centostest-primarysecondary", "port": 22 }, "authentication": { "method": "publickey", "user": "sos", "keyFile": "/home/sos/.ssh/sos_rsa" }, }, "packageLocation": "/tmp", "execPrepackageLocation": "sudo systemctl stop js7_agent.service/tmp", "execPost": "sudo systemctl start js7_agent.service" }, "mediaexecPre": {"StopService", "release "execPost": "2.5.0StartService", "tarballmakeService": "/mnt/releases/scheduler_setups/2.5.0/js7_agent_unix.2.5.0.tar.gz" true }, }, "installation": { "media": { "home": "/home/sos/js7.target/opt/agent-primary", "datarelease": "/home/sos/js7.target/var/agent-primary2.5.3", "httpPorttarball": "localhost:31445", 2.5.3/js7_agent_unix.2.5.3.tar.gz" "httpsPort": "centostest-primary:31443" }, }, "configurationinstallation": { "controller": { "home": "/opt/sos-berlin.com/js7/agent-secondary", "controllerId": "testsuite" "data": "/var/sos-berlin.com/js7/agent-secondary", }, "certificateshttpPort": {"localhost:32445", "keyStorehttpsPort": "agents/instances/agent_001/config/private/https-keystore.p12centostest-secondary.sos:32443", "keyStorePasswordjavaHome": "jobscheduler",/opt/java/jdk8u202-b08" "keyPassword": "jobscheduler"}, "trustStore": "agents/instances/agent_001/config/private/https-truststore.p12", "configuration": { "trustStorePassword": "jobscheduler" "certificates": { }, "templateskeyStore": [ "agents/instances/agent_002/config/private/https-keystore.p12", "agents/templates/https/config" "keyStorePassword": "jobscheduler", ] } "keyPassword": "jobscheduler", } }, { "trustStore": "agents/instances/agent_002": { /config/private/https-truststore.p12", "target": { "connectiontrustStorePassword": {"jobscheduler" "host": "centostest-secondary", }, "port": 22 "templates": [ }, "authentication": { "agents/templates/https/config" "method": "publickey", ] "user": "sos",} } "keyFile": "/home/sos/.ssh/sos_rsa" ] }, } ] }, "packageLocationcontrollers": "/tmp",[ { "execPrecontrollerId": "sudo systemctl stop js7_agent.servicecontroller", "execPostjocRef": "joc"sudo, systemctl start js7_agent.service" },"primary": { "mediatarget": { "releaseconnection": "2.5.0",{ "tarballhost": "/mnt/releases/scheduler_setups/2.5.0/js7_agent_unix.2.5.0.tar.gz" centostest-primary", }, "installationport": {22 "home": "/home/sos/js7.target/opt/agent-secondary"}, "dataauthentication": "/home/sos/js7.target/var/agent-secondary", { "httpPortmethod": "localhost:32445publickey", "httpsPortuser": "centostest-secondary:32443sos", }, "configurationkeyFile": {"/home/sos/.ssh/sos_rsa" "controller": { }, "controllerIdpackageLocation": "testsuite/tmp", }"execPre": "StopService", "certificatesexecPost": {"StartService", "makeService": true "keyStore": "agents/instances/agent_002/config/private/https-keystore.p12", }, "keyStorePasswordmedia": "jobscheduler",{ "keyPasswordrelease": "jobscheduler2.5.3", "trustStoretarball": "agents/instances/agent_002/config/private/https-truststore.p12", 2.5.3/js7_controller_unix.2.5.3.tar.gz" }, "trustStorePassword "installation": "jobscheduler"{ }"home": "/opt/sos-berlin.com/js7/controller-primary", "templatesdata": ["/var/sos-berlin.com/js7/controller-primary", "agents/templates/https/config""httpPort": "localhost:21444", ]"httpsPort": "centostest-primary.sos:21443", } "javaHome": "/opt/java/jdk8u202-b08", } } ], "controllersjavaOptions": [ "-Xmx256m -Djava.security.egd=file:///dev/urandom" { "testsuite": {}, "primaryconfiguration": { "targetcertificates": { "connectioncert": {"controllers/instances/controller.primary/config/private/centostest-primary.crt", "hostkeyStore": "centostest-primarycontrollers/instances/controller.primary/config/private/https-keystore.p12", "portkeyStorePassword": 22"jobscheduler", }"keyPassword": "jobscheduler", "authenticationkeyAlias": { "centostest-primary", "methodtrustStore": "publickeycontrollers/instances/controller.primary/config/private/https-truststore.p12", "usertrustStorePassword": "sosjobscheduler", }, "keyFile": "/home/sos/.ssh/sos_rsa" "templates": [ }, "controllers/templates/https.primary/config" "packageLocation": "/tmp", ] "execPre": "sudo systemctl stop js7_controller.service", } }, "execPostsecondary": { "sudo systemctl start js7_controller.service" },"target": { "mediaconnection": { "releasehost": "2.5.0centostest-secondary", "tarballport": "/mnt/releases/scheduler_setups/2.5.0/js7_controller_unix.2.5.0.tar.gz" 22 }, "authentication": { }, "installationmethod": {"publickey", "homeuser": "/home/sos/js7.target/opt/controller-primary", "datakeyFile": "/home/sos/js7.target/var/controller-primary", ssh/sos_rsa" }, "httpPortpackageLocation": "localhost:21444/tmp", "httpsPortexecPre": "centostest-primary:21443StopService", "javaOptionsexecPost": "-Xmx256mStartService", "makeService": true }, "configurationmedia": { "certificatesrelease": { "2.5.3", "keyStoretarball": "controllers/instances/testsuite.primary/config/private/https-keystore.p12",2.5.3/js7_controller_unix.2.5.3.tar.gz" }, "keyStorePasswordinstallation": "jobscheduler", { "keyPasswordhome": "jobscheduler/opt/sos-berlin.com/js7/controller-secondary", "trustStoredata": "controllers/instancesvar/testsuitesos-berlin.primarycom/configjs7/private/https-truststore.p12controller-secondary", "trustStorePasswordhttpPort": "jobschedulerlocalhost:22444", }, "httpsPort": "centostest-secondary.sos:22443", "templatesjavaHome": ["/opt/java/jdk8u202-b08", "javaOptions": "controllers/templates/https.primary/config"-Xmx256m -Djava.security.egd=file:///dev/urandom" }, ] "configuration": { } "certificates": { }, "cert": "controllers/instances/controller.secondary/config/private/centostest-secondary": { .crt", "targetkeyStore": {"controllers/instances/controller.secondary/config/private/https-keystore.p12", "connectionkeyStorePassword": {"jobscheduler", "hostkeyPassword": "centostest-secondaryjobscheduler", "porttrustStore": 22 "controllers/instances/controller.secondary/config/private/https-truststore.p12", }, "trustStorePassword": "jobscheduler" "authentication": { }, "methodtemplates": "publickey",[ "controllers/templates/https.secondary/config" "user": "sos", ] "keyFile": "/home/sos/.ssh/sos_rsa" } } } }], "joc": [ { "packageLocationmembers": "/tmp",{ "execPre"clusterId": "sudo systemctl stop js7_controller.service "joc", "instances": [ "execPost": "sudo systemctl start js7_controller.service" }, { "mediainstanceId": {1, "releasetarget": "2.5.0", { "tarballconnection": "/mnt/releases/scheduler_setups/2.5.0/js7_controller_unix.2.5.0.tar.gz"{ }, "host": "centostest-primary", "installation": { "homeport": "/home/sos/js7.target/opt/controller-secondary", 22 "data": "/home/sos/js7.target/var/controller-secondary" }, "httpPortauthentication": "localhost:22444", { "httpsPortmethod": "centostest-secondary:22443publickey", "javaOptions": "-Xmx256m" "user": "sos", }, "configurationkeyFile": { "/home/sos/.ssh/sos_rsa" "certificates": { }, "keyStorepackageLocation": "controllers/instances/testsuite.secondary/config/private/https-keystore.p12/tmp", "keyStorePasswordexecPre": "jobschedulerStopService", "keyPasswordexecPost": "jobschedulerStartService", "trustStoremakeService": "controllers/instances/testsuite.secondary/config/private/https-truststore.p12",true }, "trustStorePassword": "jobscheduler" "media": { }, "templatesrelease": [ "2.5.3", "tarball": "controllers/templates/https.secondary/config2.5.3/js7_joc_linux.2.5.3.tar.gz" ]}, } "installation": { } } }"setupDir": "/tmp/sos-berlin.com/js7/joc-primary.setup", ], "joc": [ { "home": "joc_001": {/opt/sos-berlin.com/js7/joc-primary", "primary": { "data": "/var/sos-berlin.com/js7/joc-primary", "target": { "connectionhttpPort": {"localhost:11446", "hosthttpsPort": "centostest-primary.sos:11443", "portdbmsConfig": 22 "joc/templates/dbms/mysql/response/hibernate.cfg.xml", } "isUser": true, "authenticationisPreserveEnv": {true, "methodjavaHome": "publickey/opt/java/jdk-11.0.2+9", "userjavaOptions": "sos", -Xmx256m -Djava.security.egd=file:///dev/urandom" "keyFile": "/home/sos/.ssh/sos_rsa" }, },"configuration": { "packageLocationcertificates": "/tmp", { "execPrecert": "sudo systemctl stop js7_joc.service", joc/instances/joc.primary/resources/centostest-primary.crt", "execPostkeyStore": "sudo systemctl start js7_joc.service"joc/instances/joc.primary/resources/https-keystore.p12", }, "keyStorePassword": "jobscheduler", "media": { "releasekeyPassword": "2.5.0jobscheduler", "tarballtrustStore": "joc/mntinstances/releases/scheduler_setups/2.5.0/js7_joc_linux.2.5.0.tar.gz"joc.primary/resources/https-truststore.p12", }, "trustStorePassword": "jobscheduler" "installation": { }, "setupDir": "/home/sos/js7.target/opt/joc-primary.setup", "homestartFiles": "/home/sos/js7.target/opt/joc-primary", { "datahttpIni": "joc/hometemplates/soshttps/js7start.target/var/joc-primaryd/http.ini", "httpPorthttpsIni": "localhost:11446joc/templates/https/start.d/https.ini", "httpsPortsslIni": "centostest-primary:11443", joc/templates/https/start.d/ssl.ini" "isUser": true }, "isPreserveEnvtemplates": true,[ "javaOptions": "-Xmx512m -Djava.security.egd=file:///dev/urandom "joc/templates/https/resources" }, ] "configuration": { } "responseDir": "joc/instances/joc_001.primary/response", "certificates": { }, { "keyStoreinstanceId": "joc/instances/joc_001.primary/resources/https-keystore.p12"2, "keyStorePasswordtarget": "jobscheduler",{ "keyPasswordconnection": "jobscheduler", { "trustStorehost": "joc/instances/joc_001.primary/resources/https-truststore.p12centostest-secondary", "trustStorePasswordport": "jobscheduler" 22 }, "templatesauthentication": [{ "joc/templates/https/resources" "method": "publickey", ] "user": "sos", } }, "keyFile": "/home/sos/.ssh/sos_rsa" "secondary": { }, "target": { "connectionpackageLocation": {"/tmp", "hostexecPre": "centostest-secondaryStopService", "portexecPost": 22"StartService", }, "makeService": true "authentication": { }, "methodmedia": "publickey",{ "userrelease": "sos2.5.3", "keyFiletarball": "/home/sos/.ssh/sos_rsa2.5.3/js7_joc_linux.2.5.3.tar.gz" }, "packageLocationinstallation": "/tmp", { "execPresetupDir": "sudo systemctl stop js7_joc.service", /tmp/sos-berlin.com/js7/joc-secondary.setup", "execPosthome": "sudo systemctl start js7_joc.service"/opt/sos-berlin.com/js7/joc-secondary", }, "media": { "data": "/var/sos-berlin.com/js7/joc-secondary", "releasehttpPort": "2.5.0localhost:12446", "tarballhttpsPort": "/mnt/releases/scheduler_setups/2.5.0/js7_joc_linux.2.5.0.tar.gz" centostest-secondary.sos:12443", }, "dbmsConfig": "joc/templates/dbms/mysql/response/hibernate.cfg.xml", "installationisUser": {true, "setupDirisPreserveEnv": "/home/sos/js7.target/opt/joc-secondary.setup"true, "homejavaHome": "/homeopt/sos/js7.target/opt/joc-secondaryjava/jdk-11.0.2+9", "datajavaOptions": "/home/sos/js7.target/var/joc-secondary",-Xmx256m -Djava.security.egd=file:///dev/urandom" "httpPort": "localhost:12446"}, "httpsPortconfiguration": "centostest-secondary:12443", { "isUsercertificates": true,{ "isPreserveEnv "cert": true"joc/instances/joc.secondary/resources/centostest-secondary.crt", "javaOptions "keyStore": "-Xmx512m -Djava.security.egd=file:///dev/urandom" joc/instances/joc.secondary/resources/https-keystore.p12", }"keyStorePassword": "jobscheduler", "configuration": { "keyPassword": "jobscheduler", "responseDirtrustStore": "joc/instances/joc_001.secondary/response/resources/https-truststore.p12", "certificates": { "trustStorePassword": "jobscheduler" "keyStore": "joc/instances/joc_001.secondary/resources/https-keystore.p12"}, "keyStorePasswordstartFiles": "jobscheduler",{ "keyPasswordhttpIni": "jobschedulerjoc/templates/https/start.d/http.ini", "trustStorehttpsIni": "joc/templates/instanceshttps/joc_001start.secondaryd/resources/https-truststore.p12ini", "trustStorePasswordsslIni": "jobschedulerjoc/templates/https/start.d/ssl.ini" }, "templates": [ "joc/templates/https/resources" ] } } ] } } ] } |