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


Example for Deployment Descriptor
{
    "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


Example for Deployment Descriptor
{
    "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



  • No labels