You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 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.

Future releases of JS7 will add the functionality to generate and to download Deployment Descriptors directly from the JS7 Agent inventory.

Deployment Descriptor

Deployment Descriptors are specified from .json files.


Example for Deployment Descriptor
{
    "descriptor": {
        "descriptorId": "agent-http-2022-12-04",
        "title": "Install Agents for HTTP connections to release 2.5.0",
        "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": "systemctl stop js7.agent_001",
                    "execPost": "systemctl start js7.agent_001"
                },
                "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"
                }
            }
        },
    ],
    "controllers": [],
    "joc": []
}

Examples

Deployment Descriptor for Agents with HTTP Connections

The Deployment Descriptor specifies two Agents to be installed that make use of HTTP connections and do not require further parameterization.

Download example: agent-http-2022-12-04.json


Example for Deployment Descriptor
{
    "descriptor": {
        "descriptorId": "agent-http-2022-12-04",
        "title": "Install Agents for HTTP connections to release 2.5.0",
        "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": "systemctl stop js7.agent_001",
                    "execPost": "systemctl start js7.agent_001"
                },
                "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": "systemctl stop js7.agent_002",
                    "execPost": "systemctl start js7.agent_002"
                },
                "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": []
}

Deployment Descriptor for Agents with HTTPS Connections

The Deployment Descriptor specifies the same Agents as from the previous example to be installed. This time the Agents make use of HTTPS connections and require certificates to be made available.

Download example: agent-https-2022-12-04.json


Example for Deployment Descriptor
{
    "descriptor": {
        "descriptorId": "agent-https-2022-12-04",
        "title": "Install Agents for HTTPS connections to release 2.5.0",
        "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"
                    },
                    "location": "/tmp",
                    "execPre": "systemctl stop js7.agent_001",
                    "execPost": "systemctl start js7.agent_001"
                },
                "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.sos:31443"
                },
                "configuration": {
                    "controller": {
                        "controllerId": "testsuite",
                        "primaryControllerCert": "certs/server/centostest-primary.crt",
                        "secondaryControllerCert": "certs/server/centostest-secondary.crt"
                    },
                    "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"
                    },
                    "location": "/tmp",
                    "execPre": "systemctl stop js7.agent_002",
                    "execPost": "systemctl start js7.agent_002"
                },
                "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.sos:32443"
                },
                "configuration": {
                    "controller": {
                        "controllerId": "testsuite",
                        "primaryControllerCert": "certs/server/centostest-primary.crt",
                        "secondaryControllerCert": "certs/server/centostest-secondary.crt"
                    },
                    "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": []
}  

Deployment Descriptor for Agents, Controller Cluster and JOC Cockpit Cluster

The Deployment Descriptor specifies the same Agents as from the previous example to be installed. This time the Agents make use of HTTPS connections and require certificates to be made available.

Download example: agent-https-2022-12-04.json

Example for Deployment Descriptor
{
    "descriptor": {
        "descriptorId": "joc-controller-agents-all-20221204",
        "title": "Update JOC Cockpit, Controller and Agents to release 2.5.0",
        "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"
    },
    "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"
                },
                "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.sos:31443",
                    "javaOptions": "-Xmx256m"
                },
                "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"
                },
                "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.sos: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"
                    },
                    "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.sos: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"
                    },
                    "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.sos: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": "systemctl stop joc.service",
                        "execPost": "systemctl start 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",
                        "responseDir": "joc/instances/joc_001.primary/response",
                        "home": "/home/sos/js7.target/opt/joc-primary",
                        "data": "/home/sos/js7.target/var/joc-primary",
                        "httpPort": "localhost:11446",
                        "httpsPort": "centostest-primary.sos:11443",
                        "isUser": true,
                        "isPreserveEnv": true,
                        "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom"
                    },
                    "configuration": {
                        "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": "systemctl stop joc.service",
                        "execPost": "systemctl start 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",
                        "responseDir": "joc/instances/joc_001.secondary/response",
                        "home": "/home/sos/js7.target/opt/joc-secondary",
                        "data": "/home/sos/js7.target/var/joc-secondary",
                        "httpPort": "localhost:12446",
                        "httpsPort": "centostest-secondary.sos:12443",
                        "isUser": true,
                        "isPreserveEnv": true,
                        "javaOptions": "-Xmx256m -Djava.security.egd=file:///dev/urandom"
                    },
                    "configuration": {
                        "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



  • No labels