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, 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 products use HTTP connections.

Download example: standalone-joc-controller-agent-http-2022-12-04.descriptor.json


Example for Deployment Descriptor
{
  "descriptor": {
    "descriptorId": "standalone-joc-controller-agent-http-2022-12-04",
    "title": "Install or update JOC Cockpit, Controller and Agent Standalone instances using HTTP connections",
    "account": "sosap",
    "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"
            }
          },
          {
            "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"
            }
          }
        ]
      }
    ]
  },
  "controllers": [
    {
      "jocRef": "joc",
      "controllerId": "controller",
      "primary": {
        "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_controller_unix.2.5.3.tar.gz"
        },
        "installation": {
          "home": "/opt/sos-berlin.com/js7/controller-standalone",
          "data": "/var/sos-berlin.com/js7/controller-standalone",
          "httpPort": "21444",
          "javaHome": "/opt/java/jdk8u202-b08",
          "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom"
        }
      }
    }
  ],
  "joc": [
    {
      "members": {
        "clusterId": "joc",
        "instances": [
          {
            "instanceId": 1,
            "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_joc_linux.2.5.3.tar.gz"
            },
            "installation": {
              "setupDir": "/tmp/sos-berlin.com/js7/joc-standalone.setup",
              "isUser": true,
              "isPreserveEnv": true,
              "home": "/opt/sos-berlin.com/js7/joc-standalone",
              "data": "/var/sos-berlin.com/js7/joc-standalone",
              "httpPort": "11446",
              "dbmsConfig": "joc/templates/dbms/h2/response/hibernate.cfg.xml",
              "dbmsDriver": "joc/templates/dbms/h2/response/h2-1.4.200.jar",
              "javaHome": "/opt/java/jdk-11.0.2+9",
              "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom"
            },
            "configuration": {
              "templates": [
                "joc/templates/http/resources"
              ],
              "startFiles": {
                "httpIni": "joc/templates/http/start.d/http.ini",
                "httpsIni": "joc/templates/http/start.d/https.ini",
                "sslIni": "joc/templates/http/start.d/ssl.ini"
              }
            }
          }
        ]
      }
    }
  ],
  "version": "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 and centostest-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


Example for Deployment Descriptor
{
    "descriptor": {
        "descriptorId": "cluster-joc-controller-agent-https-2022-12-04",
        "title": "Install or update JOC Cockpit, Controller and Agent Cluster instances using HTTPS connections",
        "account": "sosap",
        "scheduled": "2022-12-02T06:19:12+01:00",
        "created": "2022-11-30T23:19:12+01:00"
    },
    "license": {
        "licenseKeyFile": "licenses/sos.pem",
        "licenseBinFile": "licenses/js7-license.jar"
    },
    "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"
                        },
                        "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",
                                "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"
                        },
                        "configuration": {
                            "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": [
        {
            "controllerId": "controller",
            "jocRef": "joc",
            "primary": {
                "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_controller_unix.2.5.3.tar.gz"
                },
                "installation": {
                    "home": "/opt/sos-berlin.com/js7/controller-primary",
                    "data": "/var/sos-berlin.com/js7/controller-primary",
                    "httpPort": "localhost:21444",
                    "httpsPort": "centostest-primary.sos:21443",
                    "javaHome": "/opt/java/jdk8u202-b08",
                    "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom"
                },
                "configuration": {
                    "certificates": {
                        "cert": "controllers/instances/controller.primary/config/private/centostest-primary.crt",
                        "keyStore": "controllers/instances/controller.primary/config/private/https-keystore.p12",
                        "keyStorePassword": "jobscheduler",
                        "keyPassword": "jobscheduler",
                        "keyAlias": "centostest-primary",
                        "trustStore": "controllers/instances/controller.primary/config/private/https-truststore.p12",
                        "trustStorePassword": "jobscheduler"
                    },
                    "templates": [
                        "controllers/templates/https.primary/config"
                    ]
                }
            },
            "secondary": {
                "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_controller_unix.2.5.3.tar.gz"
                },
                "installation": {
                    "home": "/opt/sos-berlin.com/js7/controller-secondary",
                    "data": "/var/sos-berlin.com/js7/controller-secondary",
                    "httpPort": "localhost:22444",
                    "httpsPort": "centostest-secondary.sos:22443",
                    "javaHome": "/opt/java/jdk8u202-b08",
                    "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom"
                },
                "configuration": {
                    "certificates": {
                        "cert": "controllers/instances/controller.secondary/config/private/centostest-secondary.crt",
                        "keyStore": "controllers/instances/controller.secondary/config/private/https-keystore.p12",
                        "keyStorePassword": "jobscheduler",
                        "keyPassword": "jobscheduler",
                        "trustStore": "controllers/instances/controller.secondary/config/private/https-truststore.p12",
                        "trustStorePassword": "jobscheduler"
                    },
                    "templates": [
                        "controllers/templates/https.secondary/config"
                    ]
                }
            }
        }
    ],
    "joc": [
        {
            "members": {
                "clusterId": "joc",
                "instances": [
                    {
                        "instanceId": 1,
                        "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_joc_linux.2.5.3.tar.gz"
                        },
                        "installation": {
                            "setupDir": "/tmp/sos-berlin.com/js7/joc-primary.setup",
                            "home": "/opt/sos-berlin.com/js7/joc-primary",
                            "data": "/var/sos-berlin.com/js7/joc-primary",
                            "httpPort": "localhost:11446",
                            "httpsPort": "centostest-primary.sos:11443",
                            "dbmsConfig": "joc/templates/dbms/mysql/response/hibernate.cfg.xml",
                            "isUser": true,
                            "isPreserveEnv": true,
                            "javaHome": "/opt/java/jdk-11.0.2+9",
                            "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom"
                        },
                        "configuration": {
                            "certificates": {
                                "cert": "joc/instances/joc.primary/resources/centostest-primary.crt",
                                "keyStore": "joc/instances/joc.primary/resources/https-keystore.p12",
                                "keyStorePassword": "jobscheduler",
                                "keyPassword": "jobscheduler",
                                "trustStore": "joc/instances/joc.primary/resources/https-truststore.p12",
                                "trustStorePassword": "jobscheduler"
                            },
                            "startFiles": {
                                "httpIni": "joc/templates/https/start.d/http.ini",
                                "httpsIni": "joc/templates/https/start.d/https.ini",
                                "sslIni": "joc/templates/https/start.d/ssl.ini"
                            },
                            "templates": [
                                "joc/templates/https/resources"
                            ]
                        }
                    },
                    {
                        "instanceId": 2,
                        "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_joc_linux.2.5.3.tar.gz"
                        },
                        "installation": {
                            "setupDir": "/tmp/sos-berlin.com/js7/joc-secondary.setup",
                            "home": "/opt/sos-berlin.com/js7/joc-secondary",
                            "data": "/var/sos-berlin.com/js7/joc-secondary",
                            "httpPort": "localhost:12446",
                            "httpsPort": "centostest-secondary.sos:12443",
                            "dbmsConfig": "joc/templates/dbms/mysql/response/hibernate.cfg.xml",
                            "isUser": true,
                            "isPreserveEnv": true,
                            "javaHome": "/opt/java/jdk-11.0.2+9",
                            "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom"
                        },
                        "configuration": {
                            "certificates": {
                                "cert": "joc/instances/joc.secondary/resources/centostest-secondary.crt",
                                "keyStore": "joc/instances/joc.secondary/resources/https-keystore.p12",
                                "keyStorePassword": "jobscheduler",
                                "keyPassword": "jobscheduler",
                                "trustStore": "joc/instances/joc.secondary/resources/https-truststore.p12",
                                "trustStorePassword": "jobscheduler"
                            },
                            "startFiles": {
                                "httpIni": "joc/templates/https/start.d/http.ini",
                                "httpsIni": "joc/templates/https/start.d/https.ini",
                                "sslIni": "joc/templates/https/start.d/ssl.ini"
                            },
                            "templates": [
                                "joc/templates/https/resources"
                            ]
                        }
                    }
                ]
            }
        }
    ]
}

Resources



  • No labels