Versions Compared

Key

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

...

In the JS7 - Deployment process a Deployment Descriptor specifies

  • which JS7 components products of JOC Cockpit, Controller instances and Agents should be installed,
  • where to install each JS7 componentproduct,
  • 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 machineshosts.

The JS7 - Deployment Packaging Script makes use of the Deployment Descriptor to install and to package JS7 componentsproducts.Future releases of JS7 will add the functionality to generate and to download

Deployment

...

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 _v1.0.jsonThe basic structure includes to specify an array of Agent, Controller and JOC Cockpit objectsJSON Schema.
  • A Deployment Descriptor can include elements for Agents, Controllers and JOC Cockpit instances individually or as a combination.

...

Code Block
titleExample for Deployment Descriptor
linenumberstrue
{
    "descriptor": {
        "descriptorId": "agent-http-2022-12-04",
        "title": "Install or update Agent for HTTP connections",
        "account": "sos",
        "scheduled": "2022-12-02T06:19:12+01:00",
        "created": "2022-11-30T23:19:12+01:00"
    },
   "version": "1.5.3",
   "agents": [{
    "controllerRefs": [
   {
    {
        "agent_001controllerId": {
"controller",
        "members": [
         "target": {
            "agentId": "agent_001",
            "connectiontarget": {
              "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.03",
                    "tarball": "/mnt/releases/scheduler_setups/2.5.03/js7_agent_unix.2.5.03.tar.gz"
                },
                "installation": {
                    "home": "/opt/sos-berlin.com/js7/agent-primary",
                    "data": "/var/sos-berlin.com/js7/agent-primary",
                    "httpPort": "31445"
                }
            }
        },]
    ],  }
    "controllers": [],
    "joc": []}
}


Explanation:

  • Section descriptor
    • This section includes metadata about the Deployment Descriptor.
    • The descriptorId specifies the unique identifier of the Deployment Descriptor and is determines the Deployment Package.
  • Section agents
    • This section can hold any number of Agents that should be deployed.
    • Section agents.controllerRefs[].<controller-id>
      • This section specifies the list of Controllers to which related Agents are assigned. The Controller ID identifies the respective Controller.
    • Section agents.controllerRefs[].members[]
      • This section specifies the related Agents that are identified by their respective Agent ID from the agentId property. The Agent ID will be used when registering the Agent to a Controller with JOC Cockpit. The Agent ID can be specified from mixed lowercase and uppercase letters including - minus and _ underscore characters.
      • Section agents.controllerRefs[].members[].target
        • The information in this section is used to connect to the target host and to transfer the Deployment Package that holds the Agent installation..
        • The Agent
      deployment package
        • Deployment Package will be deployed to
      the 
        • host centostest-primary using SSH with the sos account
      with
        • and a private key file for
      SSH
        • authentication. The
      deployment package
        • Deployment Package will be stored to the /tmp directory on the target host.
        • Before extraction of the
      deployment package
        • Deployment Package the Agent's systemd service will be stopped and after extraction it will be started
      using  release 2.5.0 using
        • the indicated release using a copy of the tarball as offered from the JS7 - Download page
      that is made available from a mount point.
        • .
        • If a relative path is used - as in the example - then the path is prepended the js7.deploy/release directory.
        • If an absolute path is specified, for example a path to a mount point, then it will be used without changes.
      • Section agents.controllerRefs[].members[].installation
        • The Agent's
          • installation directory is /opt/sos-berlin.com/js7/agent-primary.
          • configuration directory is /var/sos-berlin.com/js7/agent-primary.
        • The Agent will
      make
        • use
      of
        • HTTP connections and will listen to port 31445.

Resources

...

Display children header