Versions Compared

Key

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

...

...

Code Block
languagepowershell
titleExample for use of Installation Script
Invoke-WebRequest `
    -Uri 'https://download.sos-berlin.com/JobScheduler.2.5/js7_controller_unix.2.5.2.tar.gz' `
    -Outfile /tmp/js7_controller_unix.2.5.2.tar.gz

./Install-JS7Controller.ps1 `
    -Tarball /tmp/js7_controller_unix.2.5.2.tar.gz `
    -HomeDir /home/sos/controller `
    -ControllerId controller `
    -HttpPort 4444 `
    -JavaHome /opt/java/jdk-1117.0.2+9 `
    -JavaOptions "-Xmx512m -Xms256m" `
    -Restart `
    -MakeDirs

# downloads the release tarball from the SOS Web Site using Invoke-WebRequest
# extracts the tarball to the Controller's home directory
# specifies the Java version and Java options to be used
# stops and starts the Controller from its instance start script <home>/bin/controller_instance.sh
# operates the Controller for HTTP port 4444

...

Code Block
languagepowershell
titleExample for use of Installation Script
Invoke-WebRequest `
    -Uri 'https://download.sos-berlin.com/JobScheduler.2.5/js7_controller_windows.2.5.2.zip' `
    -Outfile C:\tmp\js7_controller_windows.2.5.2.zip

./Install-JS7Controller.ps1 `
    -Tarball "C:\tmp\js7_controller_windows.2.5.2.zip `
    -HomeDir "C:\Program Files\sos-berlin.com\js7\controller" `
    -Data "C:\ProgramData\sos-berlin.com\js7\controller\" `
    -ControllerId controller `
    -HttpPort 4444 `
    -JavaHome "C:\Program Files\Java\jdk-1117.0.2+9" `
    -JavaOptions "-Xmx512m -Xms256m" `
    -ExecStart StartService `
    -ExecStop StopService `
    -MakeService `
    -MakeDirs

# downloads the release tarball from the SOS Web Site using Invoke-WebRequest
# extracts the tarball to the Controller's home directory
# specifies the Java version and Java options to be used
# stops and starts the Controller's Windows service
# operates the Controller for HTTP port 4444

...

Code Block
languagepowershell
titleExample for use of Installation Script
Invoke-WebRequest `
    -Uri 'https://download.sos-berlin.com/patches/JobScheduler2.2.23-patches/js7_controller_unix.2.2.3-PATCH.JS-1984.tar.gz' `
    -Outfile /tmp/js7_controller_unix.2.2.3-PATCH.JS-1984.tar.gz

./Install-JS7Controller.ps1 `
    -Tarball /tmp/js7_controller_unix.2.2.3-PATCH.JS-1984.tar.gz ` 
    -Patch JS-1984 `
    -HomeDir /home/sos/controller `
    -ControllerId controller `
    -HttpPort 4444 `
    -ExecStart StartService `
    -ExecStop StopService
 
# downloads the patch tarball from the SOS Web Site using Invoke-WebRequest
# extracts the patch tarball to the Controller's home directory
# stores the patch files to the Controller's <home>/lib/patches sub-directory
# stops and starts the Controller's systemd service

...

Code Block
languagepowershell
titleExample for use of Installation Script
Invoke-WebRequest `
    -Uri 'https://download.sos-berlin.com/patches/JobScheduler2.2.2/patch-20220331-JS-1984-3-patches/js7_controller.2.2.3-PATCH.JS-1984.jar' `
    -Outfile /tmp/patch-20220331-JS-1984-js7_controller.2.2.3-PATCH.JS-1984.jar

./Install-JS7Controller.ps1 `
    -JarPatchJar /tmp/patch-20220331-JS-1984-js7_controller.2.2.3-PATCH.JS-1984.jar ` 
    -Patch JS-1984 `
    -HomeDir /home/sos/controller `
    -ControllerId controller `
    -HttpPort 4444 `
    -ExecStart StartService `
    -ExecStop StopService
 
# downloads the patch .jar file from the SOS Web Site using Invoke-WebRequest
# stores the patch .jar file to the Controller's <home>/lib/patches sub-directory
# stops and starts the Controller's systemd service

...

Code Block
languagepowershell
titleExample for use of Installation Script
./Install-JS7Controller.ps1 `
    -Release 2.2.3 `
    -Patch JS-1984 `
    -HomeDir "C:\Program Files\sos-berlin.com\js7\controller" `
    -ControllerId controller `
    -HttpPort 4444 `
    -ExecStart StartService `
    -ExecStop StopService

# downloads the patch tarball from the SOS Web Site
# extracts the patch tarball to the Controller's home directory
# stores the patch files to the Controller's <home>\lib\patches sub-directory
# stops and starts the Controller's Windows service

Patch from

...

Tarball

Code Block
languagepowershell
titleExample for use of Installation Script
Invoke-WebRequest `
    -Uri 'https://download.sos-berlin.com/JobSchedulerpatches/2.2.23-patch/js7_controller_windows.2.2.3-PATCH.JS-1984.tar.zipgz' `
    -Outfile C:\tmp\js7_controller_windows.2.2.3-PATCH.JS-1984.ziptar.gz

./Install-JS7Controller.ps1 `
    -Tarball "C:\tmp\js7_controller_windows.2.2.3-PATCH.JS-1984.tar.zipgz" `
    -Patch JS-1984 `
    -HomeDir "C:\Program Files\sos-berlin.com\js7\controller" `
    -ControllerId controller `
    -HttpPort 4444 `
    -ExecStart StartService `
    -ExecStop StopService
 
# downloads the patch tarball from the SOS Web Site using Invoke-WebRequest
# extracts the patch tarball to the Controller's home directory
# stores the patch files to the Controller's <home>\lib\patches sub-directory
# stops and starts the Controller's Windows service

...

Code Block
languagepowershell
titleExample for use of Installation Script
Invoke-WebRequest `
    -Uri 'https://download.sos-berlin.com/JobSchedulerpatches/2.2.2/patch-20220331-JS-1984-3-patch/js7_controller.2.2.3-PATCH.JS-1984.jar' `
    -Outfile C:\tmp\patch-20220331-JS-1984-js7_controller.2.2.3-PATCH.JS-1984.jar

./Install-JS7Controller.ps1 `
    -JarPatchJar "C:\tmp\patch-20220331-JS-1984-js7_controller.2.2.3-PATCH.JS-1984.jar" `
    -Patch JS-1984 `
    -HomeDir "C:\Program Files\sos-berlin.com\js7\controller" `
    -ControllerId controller `
    -HttpPort 4444 `
    -ExecStart StartService `
    -ExecStop StopService
 
# downloads the patch .jar file from the SOS Web Site using Invoke-WebRequest
# stores the patch .jar file to the Controller's <home>\lib\patches sub-directory
# stops and starts the Controller's Windows service

...

  • <home>\bin\controller_instance.cmd
    • Replacements are performed for the following placeholders used for environment variables by respective option values:

      PlaceholderOption Value
      JS7_CONTROLLER_HOME-HomeDir
      JS7_CONTROLLER_DATA-Data
      JS7_CONTROLLER_ID-ControllerId
      JS7_CONTROLLER_USER-User
      JS7_CONTROLLER_HTTP_PORT-HttpPort
      JS7_CONTROLLER_HTTPS_PORT-HttpsPort
      JS7_CONTROLLER_CONFIG_DIR-Config
      JS7_CONTROLLER_LOGS-Logs
      JS7_CONTROLLER_PID_FILE_DIR-PidFileDir
      JS7_CONTROLLER_PID_FILE_NAME-PidFileName
      JAVA_HOME-JavaHome
      JAVA_OPTIONS-JavaOptions

Configuration Files

  • <config>\private\private.conf
    • Replacements are performed for the following placeholders by respective option values:

      PlaceholderOption Value
      {{controller-id}} -ControllerId
      {{controller-primary-distinguished-name}}-ControllerPrimaryCert
      {{controller-secondary-distinguished-name}}-ControllerSecondaryCert
      {{joc-primary-distinguished-name}}-JocPrimaryCert
      {{joc-secondary-distinguished-name}}-JocSecondaryCert
      {{keystore-file}}-Keystore
      {{keystore-password}}

      -KeystorePassword

      {{keystore-alias}}-KeystoreAlias
      {{client-keystore-file}}-ClientKeystore
      {{client-keystore-password}}-ClientKeystorePassword
      {{client-keystore-alias}}-ClientKeystoreAlias
      {{truststore-file}}-Truststore
      {{truststore-password}}-TruststorePassword



    • Find a template for a private.conf file using placeholders for HTTPS mutual authentication:

      Download: private.conf-template-controller

      Code Block
      languageyml
      titleprivate.conf template file with placeholders
      collapsetrue
      js7 {
          auth {
              users {
                  # History account (used to release events)
                  History {
                      distinguished-names=[
                          "{{joc-primary-distinguished-name}}",
                          "{{joc-secondary-distinguished-name}}"
                      ]
                      password="sha512:B793649879D61613FD3F711B68F7FF3DB19F2FE2D2C136E8523ABC87612219D5AECB4A09035AD88D544E227400A0A56F02BC990CF0D4CB348F8413DE00BCBF08"
                  }
       
                  # JOC account (needs UpdateItem permission for deployment)
                  JOC {
                      distinguished-names=[
                          "{{joc-primary-distinguished-name}}",
                          "{{joc-secondary-distinguished-name}}"
                      ]
                      password="sha512:3662FD6BF84C6B8385FC15F66A137AB75C755147A81CC7AE64092BFE8A18723A7C049D459AB35C059B78FD6028BB61DCFC55801AE3894D2B52401643F17A07FE"
                      permissions=[
                          UpdateItem
                      ]
                  }
       
                  # Controller ID and distinguished names for connections by primary/secondary Controller instance
                  {{controller-id}} {
                      distinguished-names=[
                          "{{controller-primary-distinguished-name}}",
                          "{{controller-secondary-distinguished-name}}"
                      ]
                      password="plain:"
                  }
              }
              cluster.password=""
          }
       
          configuration {
              # Locations of certificates and public keys used for signature verification
              trusted-signature-keys {
                  # PGP=${js7.config-directory}"/private/trusted-pgp-keys"
                  X509=${js7.config-directory}"/private/trusted-x509-keys"
              }
          }
       
          journal {
              # allow History account to release unused journals
              users-allowed-to-release-events=[
                  History
              ]
          }
       
          web {
              # Locations of keystore and truststore files for HTTPS connections
              https {
                  keystore {
                      # Default: ${js7.config-directory}"/private/https-keystore.p12"
                      file=${js7.config-directory}"/private/{{keystore-file}}"
                      key-password="{{keystore-password}}"
                      store-password="{{keystore-password}}"
                      # alias="{{keystore-alias}}"
                  }
      
                  client-keystore {
                      # Default: ${js7.config-directory}"/private/https-client-keystore.p12"
                      file=${js7.config-directory}"/private/{{client-keystore-file}}"
                      key-password="{{client-keystore-password}}"
                      store-password="{{client-keystore-password}}"
                      # alias="{{client-keystore-alias}}"
                  }
      
                  truststores=[
                      {
                          # Default: ${js7.config-directory}"/private/https-truststore.p12"
                          file=${js7.config-directory}"/private/{{truststore-file}}"
                          store-password="{{truststore-password}}"
                      }
                  ]
              }
          }
      }

...

...