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 objects.
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
controller
Controller ID. - Agents make use of HTTP connections.
Download example: standalone-agent-http-2022-12-04.descriptor.json
{
"descriptor": {
"descriptorId": "standalone-agent-http-2022-12-04",
"title": "Install or update Agent Standalone instance using HTTP connections",
"account": "sos",
"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",
"javaOptions": "-Xmx125m -Djava.security.egd=file:///dev/urandom"
}
},
{
"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",
"javaOptions": "-Xmx125m -Djava.security.egd=file:///dev/urandom"
}
}
]
}
]
},
"version": "1.5.3"
}
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: standalone-agent-https-2022-12-04.descriptor.json
{
"descriptor": {
"descriptorId": "standalone-agent-https-2022-12-04",
"title": "Install or update Agent Standalone instance using HTTPS connections",
"account": "sos",
"scheduled": "2022-12-02T05:19:12.000+00:00",
"created": "2022-11-30T22:19:12.000+00:00"
},
"certificates": {
"controller": {
"primaryControllerCert": "controllers/instances/controller.standalone/config/private/centostest-primary.crt"
}
},
"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",
"javaOptions": "-Xmx125m -Djava.security.egd=file:///dev/urandom"
},
"configuration": {
"certificates": {
"keyStore": "agents/instances/agent_001/config/private/https-keystore.p12",
"keyStorePassword": "jobscheduler",
"keyPassword": "jobscheduler",
"keyAlias": "centostest-primary",
"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",
"javaOptions": "-Xmx125m -Djava.security.egd=file:///dev/urandom"
},
"configuration": {
"certificates": {
"keyStore": "agents/instances/agent_002/config/private/https-keystore.p12",
"keyStorePassword": "jobscheduler",
"keyPassword": "jobscheduler",
"keyAlias": "centostest-secondary",
"trustStore": "agents/instances/agent_002/config/private/https-truststore.p12",
"trustStorePassword": "jobscheduler"
},
"templates": [
"agents/templates/https/config"
]
}
}
]
}
]
},
"version": "1.5.3"
}
Resources