Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Introduction

In the JS7 - Deployment process a Deployment Descriptor specifies

...

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.

Examples

Agent, Standalone Controller and JOC Cockpit using HTTP Connections

The Deployment Descriptor specifies a complete job scheduling environment including

...

Code Block
titleExample for Deployment Descriptor
linenumberstrue
collapsetrue
{
    "descriptor": {
        "descriptorId": "agent-controller-joc-http-20221204",
        "title": "Install or update Agent, Controller and JOC Cockpit 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": "/home/sos/js7.target/opt/agent-primary",
                    "data": "/home/sos/js7.target/var/agent-primary",
                    "httpPort": "31445"
                },
                "configuration": {
                    "controller": {
                        "controllerId": "testsuite"
                    },
                    "templates": [
                        "agents/templates/https/config"
                    ]
                }
            }
        }
    ],
    "controllers": [
        {
            "testsuite": {
                "primary": {
                    "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_controller.service",
                        "execPost": "sudo systemctl start js7_controller.service"
                      },
                    "media": {
                        "release": "2.5.0",
                        "tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_controller_unix.2.5.0.tar.gz"
                    },
                    "installation": {
                        "home": "/home/sos/js7.target/opt/controller-primary",
                        "data": "/home/sos/js7.target/var/controller-primary",
                        "httpPort": "21444"
                    },
                    "configuration": {
                        "templates": [
                            "controllers/templates/https.primary/config"
                        ]
                    }
                }
            }
        }
    ],
    "joc": [
        {
            "joc_001": {
                "primary": {
                    "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_joc.service",
                        "execPost": "sudo systemctl start js7_joc.service"
                    },
                    "media": {
                        "release": "2.5.0",
                        "tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_joc_linux.2.5.0.tar.gz"
                    },
                    "installation": {
                        "setupDir": "/home/sos/js7.target/opt/joc-primary.setup",
                        "home": "/home/sos/js7.target/opt/joc-primary",
                        "data": "/home/sos/js7.target/var/joc-primary",
                        "httpPort": "11446",
                        "isUser": true,
                        "isPreserveEnv": true,
                        "javaOptions": "-Xmx512m -Djava.security.egd=file:///dev/urandom"
                    },
                    "configuration": {
                        "responseDir": "joc/instances/joc_001.primary/response",
                        "templates": [
                            "joc/templates/https/resources"
                        ]
                    }
                }
            }
        }
    ]
}

Agents, Controller Cluster and JOC Cockpit Cluster using HTTPS Connections

The Deployment Descriptor specifies a complete job scheduling environment including

...

Code Block
titleExample for Deployment Descriptor
linenumberstrue
collapsetrue
{
    "descriptor": {
        "descriptorId": "joc-controller-agents-all-20221204",
        "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"
    },
    "license": {
        "licenseKeyFile": "licenses/sos.pem",
        "licenseBinFile": "licenses/js7-license.jar"
    },
    "certificates": {
        "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": [
        {
            "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": "/home/sos/js7.target/opt/agent-primary",
                    "data": "/home/sos/js7.target/var/agent-primary",
                    "httpPort": "localhost:31445",
                    "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": "/home/sos/js7.target/opt/agent-secondary",
                    "data": "/home/sos/js7.target/var/agent-secondary",
                    "httpPort": "localhost:32445",
                    "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": [
        {
            "testsuite": {
                "primary": {
                    "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_controller.service",
                        "execPost": "sudo systemctl start js7_controller.service"
                      },
                    "media": {
                        "release": "2.5.0",
                        "tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_controller_unix.2.5.0.tar.gz"
                    },
                    "installation": {
                        "home": "/home/sos/js7.target/opt/controller-primary",
                        "data": "/home/sos/js7.target/var/controller-primary",
                        "httpPort": "localhost:21444",
                        "httpsPort": "centostest-primary:21443",
                        "javaOptions": "-Xmx256m"
                    },
                    "configuration": {
                        "certificates": {
                            "keyStore": "controllers/instances/testsuite.primary/config/private/https-keystore.p12",
                            "keyStorePassword": "jobscheduler",
                            "keyPassword": "jobscheduler",
                            "trustStore": "controllers/instances/testsuite.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": "sudo systemctl stop js7_controller.service",
                        "execPost": "sudo systemctl start js7_controller.service"
                     },
                    "media": {
                        "release": "2.5.0",
                        "tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_controller_unix.2.5.0.tar.gz"
                    },
                    "installation": {
                        "home": "/home/sos/js7.target/opt/controller-secondary",
                        "data": "/home/sos/js7.target/var/controller-secondary",
                        "httpPort": "localhost:22444",
                        "httpsPort": "centostest-secondary:22443",
                        "javaOptions": "-Xmx256m"
                    },
                    "configuration": {
                        "certificates": {
                            "keyStore": "controllers/instances/testsuite.secondary/config/private/https-keystore.p12",
                            "keyStorePassword": "jobscheduler",
                            "keyPassword": "jobscheduler",
                            "trustStore": "controllers/instances/testsuite.secondary/config/private/https-truststore.p12",
                            "trustStorePassword": "jobscheduler"
                        },
                        "templates": [
                            "controllers/templates/https.secondary/config"
                        ]
                    }
                }
            }
        }
    ],
    "joc": [
        {
            "joc_001": {
                "primary": {
                    "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_joc.service",
                        "execPost": "sudo systemctl start js7_joc.service"
                    },
                    "media": {
                        "release": "2.5.0",
                        "tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_joc_linux.2.5.0.tar.gz"
                    },
                    "installation": {
                        "setupDir": "/home/sos/js7.target/opt/joc-primary.setup",
                        "home": "/home/sos/js7.target/opt/joc-primary",
                        "data": "/home/sos/js7.target/var/joc-primary",
                        "httpPort": "localhost:11446",
                        "httpsPort": "centostest-primary:11443",
                        "isUser": true,
                        "isPreserveEnv": true,
                        "javaOptions": "-Xmx512m -Djava.security.egd=file:///dev/urandom"
                    },
                    "configuration": {
                         "responseDir": "joc/instances/joc_001.primary/response",
                         "certificates": {
                            "keyStore": "joc/instances/joc_001.primary/resources/https-keystore.p12",
                            "keyStorePassword": "jobscheduler",
                            "keyPassword": "jobscheduler",
                            "trustStore": "joc/instances/joc_001.primary/resources/https-truststore.p12",
                            "trustStorePassword": "jobscheduler"
                        },
                        "templates": [
                            "joc/templates/https/resources"
                        ]
                    }
                },
                "secondary": {
                    "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_joc.service",
                        "execPost": "sudo systemctl start js7_joc.service"
                    },
                    "media": {
                        "release": "2.5.0",
                        "tarball": "/mnt/releases/scheduler_setups/2.5.0/js7_joc_linux.2.5.0.tar.gz"
                    },
                    "installation": {
                        "setupDir": "/home/sos/js7.target/opt/joc-secondary.setup",
                        "home": "/home/sos/js7.target/opt/joc-secondary",
                        "data": "/home/sos/js7.target/var/joc-secondary",
                        "httpPort": "localhost:12446",
                        "httpsPort": "centostest-secondary:12443",
                        "isUser": true,
                        "isPreserveEnv": true,
                        "javaOptions": "-Xmx512m -Djava.security.egd=file:///dev/urandom"
                    },
                    "configuration": { 
                         "responseDir": "joc/instances/joc_001.secondary/response",
                         "certificates": {
                            "keyStore": "joc/instances/joc_001.secondary/resources/https-keystore.p12",
                            "keyStorePassword": "jobscheduler",
                            "keyPassword": "jobscheduler",
                            "trustStore": "joc/instances/joc_001.secondary/resources/https-truststore.p12",
                            "trustStorePassword": "jobscheduler"
                        },
                        "templates": [
                            "joc/templates/https/resources"
                        ]
                    }
                }
            }
        }
    ]
}  

Resources

...