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.

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.json
  • The basic structure includes to specify an array of Agent, Controller and JOC Cockpit objects.
  • JSON 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