Versions Compared

Key

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

...

Software packages included with the installation of JS7 components products can be enabled and disabled by use of the Package Management Script.

...

  • Rollout of JS7 products is considered critical as the software allows jobs to be executed on a larger number of servers.
    • Vulnerabilities in 3rd-party libraries components of JS7 products deserve attention.
  • The solution provided for software package management is based on shell scripting by design:
    • to provide readability and to rely on OS commands only,
    • to deny the use of 3rd-party components and additional dependencies that require code to be executed.
  • The Software Package Management Script can be integrated in a number of ways:
    • by running the script directly on the related server.
    • by running one's own SSH scripts ,for use with remote servers.
    • by use with tools such as Ansible®, Puppet® that make use of an SSH Client,
    • by use of JS7 workflow automation.

...

Code Block
languagetext
titleSoftware Package Management Script: js7_features.sh
Usage: js7_set_feature.sh [Options] [Switches]

  Options:
    --home=<directory>                 | required: directory to which the JS7 product is installed
    --features=<path>                  | optional: path to features.json file, default: <home>/features.json
    --sbom=<path>                      | optional: path to sbom.json file, default: <home>/sbom.json
    --enable=<package[,package]>       | optional: enables one or more software packages
    --disable=<package[,package]>      | optional: disables one or more software packages
    --backup-dir=<directory>           | optional: backup directory for disabled software packages
    --log-dir=<directory>              | optional: log directory for log output of the script

  Switches:
    -h | --help                        | displays usage
    --list                             | returns the list of disabled/enabled software packages
    --show-logs                        | shows log output of the script
    --make-dirs                        | creates the backup and logs directories if they do not exist
    --force                            | forces disabling packages without option for later enabling from a backup directory
    --confirm                          | confirms enabling or disabling of software packages

...

  • -h | --help
    • Displays usage.
  • --list
    • Specifies the list of software packages that have been disabled or enabled. This information is used from the features.json file, see --features option.
  • --show-logs
    • Displays the log output created by the script if the --log-dir option is used.
  • --make-dirs
    • If directories are missing that are indicated with the  --backup-dir or --log-dir options then they will be created.
  • --force
    • Specifies that a software package is disabled, i.e. its files are removed from the JS7 product installation, without use of a backup directory.
  • --confirm
    • Specifies that the operation to enable or to disable a software package is confirmed. If this switch is omitted then a dry-run is performed that displays which software packages are affected by enabling or disabling.

Exit Codes

  • 0: success
  • 1: argument errors
  • 2: non-recoverable errors

...

The following examples illustrate typical use cases. Examples are provided for use with Agents, they can similarly be used for Controller and JOC Cockpit instances. The only difference being the location of the home directory of the JS7 product.

Disable Software Packages (dry-run)

...

Code Block
languageyml
titleExample for output of Software Package Management Script
{
  "group": "org.simpleframework",
  "name": "simple-xml",
  "version": "2.7.1",
  "enabled": false
}
{
  "group": "org.yaml",
  "name": "snakeyaml",
  "version": "2.0",
  "enabled": false
}