Versions Compared

Key

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

...

Code Block
languagepowershell
titleExample for use of Installation Script
./Install-JS7Controller.ps1 `
    -HomeDir "C:\Program Files\sos-berlin.com\js7\controller" `
    -Data "C:\ProgramData\sos-berlin.com\js7\controller" `
    -ControllerId controller `
    -HttpPort 4444 `
    -ExecStop StopService `
    -Uninstall

# stops the Controller's Windows service
# removes the Controller's Windows service
# removes the home directory and data directory


Anchor
replacements
replacements
Replacements

The Controller Installation Script performs replacements of placeholders in installation files and configuration files by option values.

Installation Files

  • <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}}"
                      }
                  ]
              }
          }
      }

Automation

The Controller Installation Script can be executed from a job for automated update and upgrade of JS7 Controllers.

The steps for automation are similar to update and upgrade of JS7 Agents. Find instructions how to set up workflow automation from the JS7 - Automated Installation and Update article.

Further Resources