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

Compare with Current View Page History

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

The Deployment Descriptor Schema is used to validate Deployment Descriptors. Validation proves that the descriptor is formally valid and includes the elements require for successful deployment.

Deployment Descriptor

Deployment Descriptors are specified from .json files.

  • Users are strongly encouraged to validate their .json files against the Deployment Descriptor Schema.
  • A Deployment Descriptor can include Agents, Controllers and JOC Cockpit instances individually or as a combination.

Deployment Descriptor Schema

Download

Download: JS7_Deployment_Descriptor_v1.0.json

Schema Sections

The JSON Schema is made up of a number of sections.


descriptor: required

  • descriptorId : string, required
    • The unique identifier of a Deployment Descriptor
  • title: string, optional
    • Explains the purpose of the descriptor
  • account: string, optional
    • JOC Cockpit user account who created the descriptor
  • scheduled: date-time, optional
    • Planned deployment date
  • created: date-time, optional
    • Export date of the descriptor

license: optional

This section is required if the Controller and/or JOC Cockpit are operated as a Cluster that is subject to the JS7 - License

  • licenseKeyFile: string, required
  • licenseBinFile: string, required
    • Path to the Java .jar file that holds binary code for clustering for JS7 components

certificates: optional

This section is required if the Controller and/or JOC Cockpit are operated for HTTPS connections using TLS/SSL certificates.

  • controller: object, optional
    • primaryControllerCert: string, required
      • Path to the certificate file (.crt, .pem) that holds the Primary Controller instance's base64 encoded certificate.
    • secondaryControllerCert: string, required
      • Path to the certificate file (.crt, .pem) that holds the Secondary Controller instance's base64 encoded certificate.
  • joc: object, optional
    • primaryJocCert: string, required
      • Path to the certificate file (.crt, .pem) that holds the Primary JOC Cockpit instance's base64 encoded certificate.
    • secondaryJocCert: string, required
      • Path to the certificate file (.crt, .pem) that holds the Secondary JOC Cockpit instance's base64 encoded certificate.

agents: optional

An array of Agent configuration objects is specified.

  • <agent-id>: object, required
    • The unique identifier of an Agent is specified. The identifier is used when the Agent is registered with a Controller.
    • Any number of Agent configurations using unique Agent IDs can be specified.

agents.<agent-id>.target: optional

  • target: object, optional
    • connection: object, required
      • host: string, required
        • The hostname or FQDN to which the Agent should be deployed.
      • port: number, optional
        • The port number used for SSH connections, default: 22
    • authentication
      • method: string, required
        • Supported authentication methods include public/private key. The value publickey has to be specified.
      • user: string, required
        • The user account for SSH connection sto the target host.
      • keyFile: string, optional
        • The path to the private key file of the user account, for example /home/sos/.ssh/id_rsa.
    • packagingLocation: string, required
      • The path to a directory on the target host to which the deployment tarballs will be stored after transfer.
    • execPre: string, optional
      • Holds  a command that will be executed on the target host before extraction of deployment tarballs is performed.
      • Deployment scripts provide shell functions to start and to stop the systemd service for the Agent.
      • Specifying the command StopService will stop the Agent's systemd service.
    • execPost: string, optional
      • Holds  a command that will be executed on the target host after extraction of deployment tarballs is performed.
      • Deployment scripts provide shell functions to start and to stop the systemd service for the Agent.
      • Specifying the command StartService will start the Agent's systemd service.
    • makeService: boolean, optional
      • Specifies that a systemd service should be created or renewed for the Agent.

agents.<agent-id>.media: required

  • media: object, required
    • release: object, required
      • The JS7 release number, for example 2.5.0
    • tarball: string, required
      • Path to the .tar.gz installation file as downloaded from the SOS Web Site.

agents.<agent-id>.installation: required

  • installation: object, required
    • home: object, required
      • Path to the directory to which the Agent should be installed, for example /opt/sos-berlin.com/js7/agent.
    • data: string, required
      • Path to the Agent's configuration directory, for example /var/sos-berlin.com/js7/agent.
    • homeOwner: string, optional
      • The OS account that owns the Agent's installation directory.
    • dataOwner: string, optional
      • The OS account that owns the Agent's configuration directory.
    • runUser: string, optional
      • The OS account that runs the Agent daemon/service.
    • httpPort: number, conditional
      • The HTTP port that is used to control the Agent in the localhost network by its Instance Start Script.
      • Use of the port can be limited by specifying <network-interface>:<port>, for example: localhost:4445.
      • One of HTTP Port and/or HTTPS Port has to be specified.
    • httpsPort: number, conditional
      • The HTTP port that is used to control the Agent in the localhost network by its Instance Start Script.
      • Use of the port can be limited by specifying <network-interface>:<port>, for example: jobs.example.com:4445.
      • One of HTTP Port and/or HTTPS Port has to be specified.
    • javaHome: string, optional
      • Path to a Java JDK that is used to operate the Agent, see Which Java versions is JobScheduler available for?
      • If this setting is omitted then the Agent will try to identify the location of Java from the JAVA_HOME environment variable on the target host.
    • javaOptions: string, optional
      • Specifies the Java options used for the Agent, for example heap space settings as -Xmx256m., see JS7 - FAQ - Which Java Options are recommended.
      • If this setting is omitted then the Agent will try to identify Java options from the JAVA_OPTIONS environment variable on the target host.

agents.<agent-id>.configuration: optional

  • configuration: object, optional
    • controller: object, optional
      • controllerId: object, optional
        • Unique identifier of the Controller to which the Agent will be registered. The identifier is specified with the controllers section.
    • certificates: object, optional
      • keyStore: string, optional
        • Path to a PKCS12 keystore that holds the Agents private key and certificate.
      • keyStorePassword: string, optional
        • Password for access to the Agent's keystore.
      • keyPassword: string, optional
        • Password for access to the Agent's private key (same as keyStorePassword).
      • keyAlias: string, optional
        • The alias name of the Agent's private key. The setting is relevant only if more than one private key is available with the Agent's keystore.
      • trustStore: string, optional
        • Path to a PKCS12 truststore that holds the Root CA Certificate and optionally Intermediate CA Certificate(s).
      • trustStorePassword: string, optional
        • Password for access to the truststore.
    • templates: array, optional
      • <config-directory>: string, required
        • Any directories specified will be copied to the Agent's data directory. Specified directories have to use config and/or config/private as the last part of the directory hierarchy.
        • Any files and sub-directories of the specified directories will be copied to the Agent's data directory.
        • Any number of configuration directories can be specified by repeatedly using this element.
    • files: object, optional
      • agentConf: string, optional
        • Path to a configuration file that will be copied to the Agent's config configuration directory with the  agent.conf file name.
      • privateConf: string, optional
        • Path to a configuration file that will be copied to the Agent's config/private configuration directory with the  private.conf file name.

controllers: optional

An array of Controller configuration objects is specified.

  • <controller-id>: object, required
    • target: see agents
    • media: see agents
    • installation: see agents
    • configuration: see agents



Resources



  • No labels