You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 7
Next »
Introduction
In the JS7 - Deployment process a Deployment Descriptor specifies
- which JS7 components of JOC Cockpit, Controller instances and Agents should be installed,
- where to install each JS7 component,
- 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 components.
Deployment Descriptor
Deployment Descriptors are specified from .json files.
- Users are strongly encouraged to validate their .json files against the Deployment Descriptor Schema: JS7_Deployment_Descriptor_v1.0.json
- The basic structure includes to specify an array of Agent objects.
Deployment Descriptor JSON Schema for Agent
TODO
Examples
Agents using HTTP Connections
The Deployment Descriptor specifies two Agents to be installed on two hosts:
- Host
centostest-primary
and centostest-secondary
each operate an Agent. - The Controller to which the Agents are registered is using the
testsuite
Controller ID. - Agents make use of HTTP connections.
Download example: agent-http-2022-12-04.json
{
"descriptor": {
"descriptorId": "agent-http-2022-12-04",
"title": "Install or update Agents using HTTP connections",
"account": "sos",
"scheduled": "2022-12-02T06:19:12+01:00",
"created": "2022-11-30T23:19:12+01:00"
},
"agents": [
{
"agent_001": {
"target": {
"connection": {
"host": "centostest-primary",
"port": 22
},
"authentication": {
"method": "publickey",
"user": "sos",
"keyFile": "/home/sos/.ssh/sos_rsa"
},
"packageLocation": "/tmp",
"execPre": "sudo systemctl stop js7_agent.service",
"execPost": "sudo systemctl start js7_agent.service"
},
"media": {
"release": "2.5.0",
"tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_agent_unix.2.5.0.tar.gz"
},
"installation": {
"home": "/opt/sos-berlin.com/js7/agent-primary",
"data": "/var/sos-berlin.com/js7/agent-primary",
"httpPort": "31445"
}
}
},
{
"agent_002": {
"target": {
"connection": {
"host": "centostest-secondary",
"port": 22
},
"authentication": {
"method": "publickey",
"user": "sos",
"keyFile": "/home/sos/.ssh/sos_rsa"
},
"packageLocation": "/tmp",
"execPre": "sudo systemctl stop js7_agent.service",
"execPost": "sudo systemctl start js7_agent.service"
},
"media": {
"release": "2.5.0",
"tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_agent_unix.2.5.0.tar.gz"
},
"installation": {
"home": "/opt/sos-berlin.com/js7/agent-secondary",
"data": "/var/sos-berlin.com/js7/agent-secondary",
"httpPort": "32445"
}
}
}
],
"controllers": [],
"joc": []
}
Agents using HTTPS Connections
The Deployment Descriptor specifies two Agents to be installed on two hosts:
- Host
centostest-primary
and centostest-secondary
each operate an Agent. - The Controller to which the Agents are registered is using the
testsuite
Controller ID. - Agents use HTTPS connections and are equipped with certificates.
Download example: agent-https-2022-12-04.json
{
"descriptor": {
"descriptorId": "agent-https-2022-12-04",
"title": "Install or update Agents using HTTPS connections",
"account": "sos",
"scheduled": "2022-12-02T06:19:12+01:00",
"created": "2022-11-30T23:19:12+01:00"
},
"certificates": {
"controller": {
"primaryControllerCert": "controllers/instances/testsuite.primary/config/private/centostest-primary.crt",
"secondaryControllerCert": "controllers/instances/testsuite.secondary/config/private/centostest-secondary.crt"
}
},
"agents": [
{
"agent_001": {
"target": {
"connection": {
"host": "centostest-primary",
"port": 22
},
"authentication": {
"method": "publickey",
"user": "sos",
"keyFile": "/home/sos/.ssh/sos_rsa"
},
"packageLocation": "/tmp",
"execPre": "sudo systemctl stop js7_agent.service",
"execPost": "sudo systemctl start js7_agent.service"
},
"media": {
"release": "2.5.0",
"tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_agent_unix.2.5.0.tar.gz"
},
"installation": {
"home": "/opt/sos-berlin.com/js7/agent-primary",
"data": "/var/sos-berlin.com/js7/agent-primary",
"httpPort": "localhost:31443",
"httpsPort": "centostest-primary:31443"
},
"configuration": {
"controller": {
"controllerId": "testsuite"
},
"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"
]
}
}
},
{
"agent_002": {
"target": {
"connection": {
"host": "centostest-secondary",
"port": 22
},
"authentication": {
"method": "publickey",
"user": "sos",
"keyFile": "/home/sos/.ssh/sos_rsa"
},
"packagelocation": "/tmp",
"execPre": "sudo systemctl stop js7_agent.service",
"execPost": "sudo systemctl start js7_agent.service"
},
"media": {
"release": "2.5.0",
"tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_agent_unix.2.5.0.tar.gz"
},
"installation": {
"home": "/opt/sos-berlin.com/js7/agent-secondary",
"data": "/var/sos-berlin.com/js7/agent-secondary",
"httpPort": "localhost:32443",
"httpsPort": "centostest-secondary:32443"
},
"configuration": {
"controller": {
"controllerId": "testsuite"
},
"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": [],
"joc": []
}
Resources