Versions Compared

Key

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

...

Introduction

Installation, updates, upgrades, patching and upgrades uninstallation are performed using by use of Agent Installation Script. The script makes use of the .tar.gz/.zip archives provided for the initial installation of newer releases.

  • JS7 - Installation instructions apply.
  • For environments with a larger number of Agents the installation, update, upgrade, patch and patch uninstallation processes can be automated in a number of ways:
    • Users can apply the Agent Installation Script that is described in this article.
    • Users can automate packaging and deployment of Agents, see JS7 - Deployment.
    • Users can apply the Agent Installation Script with use their preferred tools such as Ansible®, Puppet®, Chef®.Users can apply the Agent Installation Script that is described in this article either standalone or in combination with such tools.

Security

Secure rollout of JS7 components is critical. It is therefore recommended that the solution described here is adjusted to suit specific security needs.

...

Code Block
titleAgent Installer Script: js7_install_agent.sh
Usage: js7_install_agent.sh [Options] [Switches]

  Installation Options:
    --home=<directory>                 | required: directory to which the Agent will be installed
    --data=<directory>                 | optional: directory for Agent data files, default: <home>/var_4445
    --config=<directory>               | optional: directory from which the Agent reads configuration files, default: <data>/config
    --logs=<directory>                 | optional: directory to which the Agent writes log files, default: <data>/logs
    --work=<directory>                 | optional: working directory of the Agent, default: <data>
    --user=<account>                   | optional: user account for Agent daemon, default: $USER
    --release=<release-number>         | optional: release number such as 2.5.0 for download if --tarball is not used
    --tarball=<tar-gz-archive>         | optional: the path to a .tar.gz archive that holds the Agent tarball,
                                       |           if not specified the Agent tarball will be downloaded from the SOS web site
    --patch=<issue-key>                | optional: identifies a patch for an existing Agent installation
    --instance-script=<file>           | optional: path to the Instance Start Script that will be copied to the Agent, default <home>/bin/<instance-script>
    --backup-dir=<directory>           | optional: backup directory for existing Agent home directory
    --log-dir=<directory>              | optional: log directory for log output of this script
    --exec-start=<command>             | optional: command to start the Agent, e.g. 'StartService'
    --exec-stop=<command>              | optional: command to stop the Agent, e.g. 'StopService'
    --return-values=<file>             | optional: path to a file that holds return values such as the path to a log file

  Configuration Options:
    --deploy-dir=<dir>[,<dir>]         | optional: deployment directory from which configuration files are copied to the Agent
    --agent-conf=<file>                | optional: path to a configuration file that will be copied to <config>/agent.conf
    --private-conf=<file>              | optional: path to a configuration file that will be copied to <config>/private/private.conf
    --http-port=<port>                 | optional: specifies the http port the Agent will be operated for, default: 4445
                                                   port can be prefixed by network interface, e.g. localhost:4445
    --https-port=<port>                | optional: specifies the https port the Agent will be operated for
                                                   port can be prefixed by network interface, e.g. batch.example.com:4445
    --pid-file-dir=<directory>         | optional: directory to which the Agent writes its PID file, default: <data>/logs
    --pid-file-name=<file-name>        | optional: file name used by the Agent to write its PID file, default: agent.pid
    --controller-id=<identifier>       | optional: Controller ID, default: controller
    --controller-primary-cert=<file>   | optional: path to Primary/Standalone Controller certificate file
    --controller-secondary-cert=<file> | optional: path to Secondary Controller certificate file
    --keystore=<file>                  | optional: path to a PKCS12 keystore file that will be copied to <config>/private/
    --keystore-password=<password>     | optional: password for access to keystore
    --keystore-alias=<alias-name>      | optional: alias name for keystore entry
    --truststore=<file>                | optional: path to a PKCS12 truststore file that will be copied to <config>/private/
    --truststore-password=<password>   | optional: password for truststore password
    --java-home=<directory>            | optional: Java Home directory for use with the Instance Start Script
    --java-options=<options>           | optional: Java Options for use with the Instance Start Script
    --service-dir=<directory>          | optional: systemd service directory, default: /usr/lib/systemd/system
    --service-file=<file>              | optional: path to a systemd service file that will be copied to <home>/bin/<file>
    --service-name=<identifier>        | optional: name of the systemd service to be created, default js7_agent_<http-port>

    Switches:
    -h | --help

    Switches:
    -h | --help                        | displays usage
    --no-install                       | skips Agent installation, performs configuration updates only
    --uninstall                        | displaysuninstalls usageAgent
     --show-logs                        | shows log output of the script
    --make-dirs                        | creates the specified directories if they do not exist
    --make-service                     | creates the systemd service for the Agent
    --move-libs                        | moves an existing Agent's lib directory instead of removing the directory
    --remove-journal                   | removes an existing Agent's state directory that holds the journal files
    --restart                          | stops a running Agent and starts the Agent after installation
    --abort                            | aborts a running Agent if used with the --restart switch
    --kill                             | kills a running Agent if used with the --restart switch 

...

  • -h | --help
    • Displays usage.
  • --no-install
    • Specifies if the Installation Script should be used to update configuration items without changes to the binary files of the installation.
      In fact no installation is performed but configuration changes as for example specified with the --keystore argument will be applied.
  • --uninstall
    • Uninstalls the Agent including the steps to stop & remove a running Agent service and to remove the <home> and <data> directories.
  • --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 --home, --backup-dir or --log-dir options then they will be created.
  • --make-service
    • Specifies that a systemd service should be created for the Agent. The service will be created from the --service-name option or its default value.
  • --move-libs
    • For an existing Agent installation the lib sub-directory includes .jar files that carry the release number in their file names. If replaced by a newer version the lib directory has to be moved or removed. This switch tries to move the directory to a previous version number as indicated from the .version file in the Agent's home directory, for example to rename lib to lib.2.3.1.
    • Files in the lib/user_lib sub-directory are preserved.
  • --remove-journal
    • If Agents have been installed for the wrong operating mode (standalone, clustered) then the Agent's journal in the JS7_AGENT_DATA/state directory can be removed. This operation removes any orders submitted to an Agent and requires the Agent to be re-registered to a Controller.
  • --restart
    • Stops a running Agent before installation and starts the Agent after installation using the Agent's Instance Start Script. This switch can be used with the --abort and --kill switches to control the way how the Agent is terminated. This switch is ignored if the --exec-start or --exec-stop options are used.
  • --abort
    • Aborts a running Agent and kills any running tasks including child processes if used with the --restart switch. Aborting an Agent includes to terminate the Agent in an orderly manner that allows to close files consistently.
  • --kill
    • Kills a running Agent and any running tasks if used with the --restart switch. This includes killing child processes of running tasks.

...