Page History
...
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
...
- 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" }, "scheduled": "2022-12-02T06:19:12+01:00", "created": "2022-11-30T23:19:12+01:00" }, "licensetemplates": {[ "licenseKeyFile": "licenses/sos.pem", "licenseBinFile": "licenses/js7-license.jar" }, "certificates": {agents/templates/https/config" "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" } },{ "agents": [ { "agentId": "agent_001": { 002", "target": { "connection": { "host": "centostest-primarysecondary", "port": 22 }, "authentication": { "authentication": { "method": "publickey", "user": "sos", "keyFile": "/home/sos/.ssh/sos_rsa" }, }, "packageLocation": "/tmp", "packageLocation": "/tmp", "execPre": "sudo systemctl stop js7_agent.service", "execPostexecPre": "sudoStopService", systemctl start js7_agent.service" }, "mediaexecPost": {"StartService", "release "makeService": "2.5.0", true "tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_agent_unix.2.5.0.tar.gz" }, }, "media": { "installation": { "homerelease": "/home/sos/js7.target/opt/agent-primary", 2.5.3", "tarball": "2.5.3/js7_agent_unix.2.5.3.tar.gz" "data": "/home/sos/js7.target/var/agent-primary", }, "httpPort": "localhost:31445", "httpsPortinstallation": "centostest-primary:31443" { }, "configurationhome": {"/opt/sos-berlin.com/js7/agent-secondary", "controller": { "data": "/var/sos-berlin.com/js7/agent-secondary", "controllerId": "testsuite" "httpPort": "localhost:32445", }, "certificateshttpsPort": { "centostest-secondary.sos:32443", "keyStorejavaHome": "agents/instancesopt/agent_001/config/private/https-keystore.p12",java/jdk8u202-b08" "keyStorePassword": "jobscheduler"}, "keyPasswordconfiguration": "jobscheduler", { "trustStorecertificates": "agents/instances/agent_001/config/private/https-truststore.p12", { "trustStorePassword": "jobscheduler" "keyStore": "agents/instances/agent_002/config/private/https-keystore.p12", }, "templates"keyStorePassword": ["jobscheduler", "agents/templates/https/config" "keyPassword": "jobscheduler", ] } "trustStore": "agents/instances/agent_002/config/private/https-truststore.p12", } }, { "agent_002trustStorePassword": {"jobscheduler" "target": { }, "connection": { "templates": [ "host": "centostest-secondary", "port": 22 "agents/templates/https/config" }, ] "authentication": { } "method": "publickey", } ] "user": "sos", } ] }, "keyFilecontrollers": "/home/sos/.ssh/sos_rsa" [ { }"controllerId": "controller", "packageLocation"jocRef": "/tmp", joc", "primary": { "execPre": "sudo systemctl stop js7_agent.service", "target": { "execPostconnection": "sudo systemctl start js7_agent.service"{ }, "mediahost": {"centostest-primary", "releaseport": "2.5.0",22 "tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_agent_unix.2.5.0.tar.gz" }, }, "authentication": { "installationmethod": { "publickey", "homeuser": "/home/sos/js7.target/opt/agent-secondary", "datakeyFile": "/home/sos/js7.target/var/agent-secondary",ssh/sos_rsa" "httpPort": "localhost:32445"}, "httpsPortpackageLocation": "centostest-secondary:32443"/tmp", }, "execPre": "StopService", "configuration": { "execPost": "StartService", "controller": { "makeService": true "controllerId": "testsuite" }, },"media": { "certificatesrelease": {"2.5.3", "keyStoretarball": "agents/instances/agent_002/config/private/https-keystore.p12", 2.5.3/js7_controller_unix.2.5.3.tar.gz" }, "keyStorePasswordinstallation": "jobscheduler",{ "keyPassword": "jobscheduler", "home": "/opt/sos-berlin.com/js7/controller-primary", "trustStoredata": "agents/instances/agent_002/config/private/https-truststore.p12var/sos-berlin.com/js7/controller-primary", "trustStorePasswordhttpPort": "jobschedulerlocalhost:21444", } "httpsPort": "centostest-primary.sos:21443", "templatesjavaHome": ["/opt/java/jdk8u202-b08", "javaOptions": "agents/templates/https/config" "-Xmx256m -Djava.security.egd=file:///dev/urandom" }, ]"configuration": { } "certificates": { } } ], "controllerscert": [ "controllers/instances/controller.primary/config/private/centostest-primary.crt", { "testsuitekeyStore": { "controllers/instances/controller.primary/config/private/https-keystore.p12", "primarykeyStorePassword": { "jobscheduler", "targetkeyPassword": {"jobscheduler", "connectionkeyAlias": { "centostest-primary", "hosttrustStore": "centostest-primarycontrollers/instances/controller.primary/config/private/https-truststore.p12", "trustStorePassword": "jobscheduler" "port": 22 }, }, "templates": [ "authentication": { "controllers/templates/https.primary/config" "method": "publickey", ] } "user": "sos"}, "secondary": { "keyFiletarget": "/home/sos/.ssh/sos_rsa" { },"connection": { "packageLocationhost": "/tmpcentostest-secondary", "execPreport": 22 "sudo systemctl stop js7_controller.service", }, "execPost": "sudo systemctl start js7_controller.service" }, "authentication": { "mediamethod": {"publickey", "releaseuser": "2.5.0sos", "tarballkeyFile": "/mnthome/releases/scheduler_setups/2.5.0/js7_controller_unix.2.5.0.tar.gzsos/.ssh/sos_rsa" }, "installationpackageLocation": {"/tmp", "homeexecPre": "/home/sos/js7.target/opt/controller-primaryStopService", "dataexecPost": "/home/sos/js7.target/var/controller-primaryStartService", "httpPortmakeService": "localhost:21444",true "httpsPort": "centostest-primary:21443", }, "javaOptionsmedia": "-Xmx256m"{ } "release": "2.5.3", "configurationtarball": {"2.5.3/js7_controller_unix.2.5.3.tar.gz" }, "certificates": { "installation": { "keyStorehome": "controllers/instancesopt/testsuitesos-berlin.primarycom/configjs7/private/https-keystore.p12controller-secondary", "keyStorePassword"data": "jobscheduler/var/sos-berlin.com/js7/controller-secondary", "httpPort": "localhost:22444", "keyPassword": "jobscheduler", "httpsPort": "centostest-secondary.sos:22443", "trustStorejavaHome": "controllers/instancesopt/testsuite.primary/config/private/https-truststore.p12java/jdk8u202-b08", "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom" "trustStorePassword": "jobscheduler" }, }, "configuration": { "templatescertificates": [{ "cert": "controllers/templatesinstances/httpscontroller.primarysecondary/config" /private/centostest-secondary.crt", ] "keyStore": "controllers/instances/controller.secondary/config/private/https-keystore.p12", } }"keyStorePassword": "jobscheduler", "secondary": { "targetkeyPassword": {"jobscheduler", "connectiontrustStore": { "controllers/instances/controller.secondary/config/private/https-truststore.p12", "hosttrustStorePassword": "centostest-secondaryjobscheduler", "port": 22 }, },"templates": [ "authentication": { controllers/templates/https.secondary/config" ] "method": "publickey", } } } "user": "sos" ], "joc": [ { "keyFilemembers": "/home/sos/.ssh/sos_rsa"{ "clusterId": "joc", }, "instances": [ "packageLocation": "/tmp", { "execPre": "sudo systemctl stop js7_controller.service" "instanceId": 1, "execPosttarget": "sudo systemctl start js7_controller.service" }, { "connection": { "media": { "releasehost": "2.5.0centostest-primary", "tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_controller_unix.2.5.0.tar.gz" "port": 22 }, "installationauthentication": { "home "method": "/home/sos/js7.target/opt/controller-secondarypublickey", "data "user": "/home/sos/js7.target/var/controller-secondary", "httpPortkeyFile": "localhost:22444", /home/sos/.ssh/sos_rsa" "httpsPort": "centostest-secondary:22443", }, "javaOptions": "-Xmx256m" "packageLocation": "/tmp", }, "configurationexecPre": {"StopService", "certificatesexecPost": {"StartService", "keyStoremakeService": "controllers/instances/testsuite.secondary/config/private/https-keystore.p12",true "keyStorePassword": "jobscheduler"}, "keyPasswordmedia": "jobscheduler",{ "trustStorerelease": "controllers/instances/testsuite.secondary/config/private/https-truststore.p122.5.3", "trustStorePassword": "jobscheduler""tarball": "2.5.3/js7_joc_linux.2.5.3.tar.gz" }, "templatesinstallation": [{ "setupDir": "controllers/templatestmp/https.secondary/config"sos-berlin.com/js7/joc-primary.setup", ] "home": "/opt/sos-berlin.com/js7/joc-primary", } }"data": "/var/sos-berlin.com/js7/joc-primary", } } ], "jochttpPort": [ {"localhost:11446", "joc_001": { "httpsPort": "centostest-primary": { .sos:11443", "targetdbmsConfig": { "joc/templates/dbms/mysql/response/hibernate.cfg.xml", "connectionisUser": {true, "hostisPreserveEnv": "centostest-primary"true, "portjavaHome": 22 "/opt/java/jdk-11.0.2+9", }, "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom" "authentication": { }, "methodconfiguration": "publickey",{ "usercertificates": "sos",{ "keyFilecert": "joc/home/sos/.ssh/sos_rsa"instances/joc.primary/resources/centostest-primary.crt", }, "keyStore": "joc/instances/joc.primary/resources/https-keystore.p12", "packageLocation": "/tmp", "execPre"keyStorePassword": "sudo systemctl stop js7_joc.servicejobscheduler", "execPostkeyPassword": "sudo systemctl start js7_joc.service"jobscheduler", }, "trustStore": "joc/instances/joc.primary/resources/https-truststore.p12", "media": { "releasetrustStorePassword": "2.5.0jobscheduler", "tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_joc_linux.2.5.0.tar.gz" }, }, "startFiles": { "installation": { "setupDirhttpIni": "joc/hometemplates/soshttps/js7start.target/opt/joc-primary.setupd/http.ini", "homehttpsIni": "joc/hometemplates/soshttps/js7start.target/opt/joc-primaryd/https.ini", "datasslIni": "joc/hometemplates/soshttps/js7start.target/var/joc-primary", d/ssl.ini" "httpPort": "localhost:11446" }, "httpsPorttemplates": "centostest-primary:11443", [ "isUser": true, joc/templates/https/resources" "isPreserveEnv": true, ] "javaOptions": "-Xmx512m -Djava.security.egd=file:///dev/urandom" } }, "configuration": { "responseDirinstanceId": "joc/instances/joc_001.primary/response"2, "certificates "target": { "keyStoreconnection": "joc/instances/joc_001.primary/resources/https-keystore.p12", { "keyStorePasswordhost": "jobschedulercentostest-secondary", "keyPasswordport": "jobscheduler",22 "trustStore": "joc/instances/joc_001.primary/resources/https-truststore.p12"}, "trustStorePasswordauthentication": "jobscheduler"{ }, "method": "publickey", "templates": [ "user": "sos", "joc/templates/https/resources" ] "keyFile": "/home/sos/.ssh/sos_rsa" } }, "secondary": { "packageLocation": "/tmp", "target": { "connectionexecPre": {"StopService", "hostexecPost": "centostest-secondaryStartService", "portmakeService": 22true }, "authenticationmedia": { "methodrelease": "publickey2.5.3", "usertarball": "sos",2.5.3/js7_joc_linux.2.5.3.tar.gz" }, "keyFile": "/home/sos/.ssh/sos_rsa" "installation": { }, "packageLocationsetupDir": "/tmp/sos-berlin.com/js7/joc-secondary.setup", "execPrehome": "sudo systemctl stop js7_joc.service/opt/sos-berlin.com/js7/joc-secondary", "execPostdata": "sudo systemctl start js7_joc.service"/var/sos-berlin.com/js7/joc-secondary", }, "httpPort": "localhost:12446", "media": { "releasehttpsPort": "2.5.0", centostest-secondary.sos:12443", "tarballdbmsConfig": "joc/mnttemplates/releasesdbms/scheduler_setups/2.5.0/js7_joc_linux.2.5.0.tar.gz"mysql/response/hibernate.cfg.xml", }, "isUser": true, "installationisPreserveEnv": {true, "setupDirjavaHome": "/homeopt/sosjava/js7.target/opt/joc-secondary.setupjdk-11.0.2+9", "homejavaOptions": "/home/sos/js7.target/opt/joc-secondary",-Xmx256m -Djava.security.egd=file:///dev/urandom" "data": "/home/sos/js7.target/var/joc-secondary"}, "httpPortconfiguration": "localhost:12446",{ "httpsPortcertificates": "centostest-secondary:12443", { "isUsercert": true, "joc/instances/joc.secondary/resources/centostest-secondary.crt", "isPreserveEnvkeyStore": true, "joc/instances/joc.secondary/resources/https-keystore.p12", "javaOptionskeyStorePassword": "-Xmx512m -Djava.security.egd=file:///dev/urandom"jobscheduler", }, "keyPassword": "jobscheduler", "configuration": { "responseDirtrustStore": "joc/instances/joc_001.secondary/responseresources/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_001.secondary/resourcesstart.d/https-truststore.p12ini", "trustStorePasswordsslIni": "jobschedulerjoc/templates/https/start.d/ssl.ini" }, "templates": [ "joc/templates/https/resources" ] } } ] } } ] } |