OpsWise Controller Docker Install

This is a Legacy doc!
It describes building a docker container image from scratch.

1. Prep

1.1. MySQL Prep

  1. Update DB Server info

    1. In the docker-compose.yml file update entries for:

      1. MARIADB_ROOT_PASSWORD

1.2. Install Prep

  1. Download the latest controller file and place it in the uac-installation-files directory.

    Example file name
    universal-controller-7.4.0.0.zip
  2. Download the latest Debian Linux agent file and place it in the uac-installation-files directory.

    Example file name
    sb-7.4.0.0-linux-3-x86_64-deb.tar.Z
  3. Update variables in uac/uac-scripts/function-library.bash to reflect the names of the following:

    1. controller file name

    2. war file name

      • The war file is contained in the controller zip file. Do the following to get the name

        zipinfo universal-controller-7.x.x.x.zip (1)
        1 this should be the name of the controller’s zip file
      • Example

        Example
        zipinfo universal-controller-7.4.0.0.zip
        Archive:  universal-controller-7.4.0.0.zip
        Zip file size: 174453202 bytes, number of entries: 5
        -rw-r--r--  3.0 unx 180345269 bx defN 23-Apr-04 17:06 universal-controller-7.4.0.0-build.139.war    (1)
        -rw-r--r--  3.0 unx     11372 bx defN 23-Apr-04 17:06 InstallController.class
        -rw-r--r--  3.0 unx      1034 bx defN 23-Apr-04 17:06 UcProperties.class
        -rw-r--r--  3.0 unx        49 tx stor 23-Apr-04 17:06 install-controller.bat
        -rw-r--r--  3.0 unx        49 tx stor 23-Apr-04 17:06 install-controller.sh
        5 files, 180357773 bytes uncompressed, 174452288 bytes compressed:  3.3%
        1 this the name of the war file
    3. agent files

      The variable values should match the names of the recently downloaded files.

2. Build Image & Start Containers

  1. Change dir

    cd pod-uac-server
  2. Build the docker image and start the containers via the podman-compose command.

    podman-compose up -d --build
    It will take a few minutes to build the docker image…​

3. Bootstrap

3.1. Bootstrap UAC Controller

  1. Connect to the UAC container

    podman exec -it UAC-Server bash
  2. Start the UAC Controller bootstrap process:

    1. Move to /tmp/uac-scripts

      cd /tmp/uac-scripts
    2. Exec

      ./1-install-uac-controller.bash

3.2. Install UAC Agent/OMS

  1. Connect to the UAC container

    podman exec -it UAC-Server bash
  2. Start the UAC Agent install process:

    1. Move to /tmp/uac-scripts

      cd /tmp/uac-scripts
    2. Exec

      ./2-install-uac-agent.bash

3.3. Cleanup

  1. Connect to the UAC container

    podman exec -it UAC-Server bash
  2. Start the UAC Agent install process:

    1. Move to /tmp

      cd /tmp/uac-scripts
    2. Exec

      ./3-cleanup.bash

4. Launch GUI

  1. After the initial install, restart the container.

    podman restart UAC-Server
  2. Browse to:

    http://<ip address>:8085/uc/
  3. Log in with user=ops.admin with no password

    You will need to change the password immediately.

5. Setup

5.1. Preliminary

  1. Create an OMS Server where address=uac-server

  2. Configure LDAP

  3. Rename Agents

    1. Rename the initial Linux agent to AGNT0001

    2. Rename the P-Ubuntu-Norco* Linux agent to P-Ubuntu-NORCO

    3. Rename the P-Ubuntu-NAS* Linux agent to P-Ubuntu-NAS

    4. Rename the Norco* Windows agent to norco

  4. Set system property for Resolvable Credentials Permitted to True.

  5. Create a user (not a credential) that can access the Web API

    1. Create a user with the following properties:

      1. user Id = web-api-user

      2. First Name = Web Api User

      3. Web Browser Access = No

      4. Command Line Access = No

      5. Web Service Access = Yes

    2. Grant this user the ops_admin role.

5.2. Import Universal Templates

  1. Import Jobs as Code

    \\norco\Stuff\Appz\_Schedulers\Stonebranch\Integrations\JaC\unv_tmplt_jobs_as_code-1.0.0+414.zip
  2. Import LAZ-Win-UAG-Upgrade

    \\norco\Stuff\Appz\_Schedulers\Stonebranch\Integrations\LAZ\unv_tmplt_laz_win_uag_upgrade.zip
  3. Import SSH

    \\norco\Stuff\Appz\_Schedulers\Stonebranch\Integrations\UAC\Remote SSH Server\unv-templ-ut-remote-ssh-server-json-1.0.1.zip
  4. Import XS-RoboCopy

    \\norco\Stuff\Appz\_Schedulers\Stonebranch\Integrations\XS\unv_tmplt_xs_robocopy.zip
  5. Import XS-RSync

    \\norco\Stuff\Appz\_Schedulers\Stonebranch\Integrations\XS\unv_tmplt_xs_rsync.zip

5.3. Restore Definitions for Tasks, etc

  1. Restore Credentials

    1. Goto Credentials

    2. Upload all credential files

      Source folder
      \\norco\Stuff\Appz\_Schedulers\Stonebranch\Bootstrap\Credentials\
  2. Fix Credentials

    1. For the mattosd cred, fix the password.

    2. For the linux-mattosd cred, fix the password.

    3. For the linux-root cred, fix the password.

    4. For the gitlab cred, re-input the Token value.

      If unknown, goto GitLab, open the Repo-UAC project, and generate a new access token
    5. For the cred: Web-Api-User update the password from the user account created earlier.

  3. Restore All Tasks

    1. Restore from the single All Tasks file.

      This file will need to be imported twice!
      The 2nd import will link sub-workflow with workflows.
  4. Alter Jobs as Code task.

    1. For the JaC: Import from GitLab task, update the Universal Controller URL field

      Example
      http://192.168.1.10:8085/uc/
  5. Restore Triggers

    1. Restore

      Source folder
      \\norco\Stuff\Appz\_Schedulers\Stonebranch\Bootstrap\Triggers
    2. Enable Triggers

6. Misc

6.1. Log files

6.1.1. OpsWise Controller

  • OpsWise log file will be in /usr/local/tomcat/uc_logs

    Example
    podman exec -it UAC-Server tail -f /usr/local/tomcat/uc_logs/uc.log

6.1.2. OpsWise Agent

6.2. DB

6.2.1. Dump the DB

  1. Run the dump-db.bash script
    This will create a dump file in MariaDB-data/backups

    sudo dump-db.bash

6.2.2. Restore from DB

Confirm you have a DB restore file to restore from before proceeding!
  1. Stop the pod-uac-server pod

    podman-compose down
  2. Delete the MariaDB-data/ folder contents

    sudo find ./MariaDB-data/ -mindepth 1 \
      ! -path './MariaDB-data/restores' \
      ! -path './MariaDB-data/restores/*' \
      ! -path './MariaDB-data/backups' \
      ! -path './MariaDB-data/backups/*' \
      -exec rm -rf {} +
  3. Set ownership on the ./MariaDB-data folder

    sudo chwon -R 525286:525286 ./MariaDB-data
  4. Start the pod-uac-server pod

    podman-compose up -d
  5. Run the restore-db.bash script with the name of the db restore file

    example
    sudo ./restore-db.bash ../opswiseDB_2025-08-16-09_04_54.sql
  6. Now continue by following the the Bootstrap section of this doc.

6.2.3. Connect to DB

  • Connect to the MariaDB server using the mysql client

    Connect as root directly from the UAC-MariaDB container
    podman exec -it UAC-MariaDB mysql -u root -p
    you’l need to provide the MariaDB root password that’s set in the compose.yml file.
    Connect as opswise_db_admin directly from the UAC-Server container
    podman exec -it UAC-Server mysql -h uac-db -u opswise_db_admin -p
    you’l need to provide the opswise_db_admin password that’s set in the db\1-setup.sql file.

7. Uninstall Containers

This will destroy all data!
Do this when the license expires.
  • Run the destroy uac script:

    sudo ./detroy-uac.bash

8. Upgrade the Controller

  1. Download the latest controller file and place it in the uac-installation-files directory.

    Example file name
    universal-controller-7.4.1.7.zip
  2. Connect to the UAC container

    sudo docker exec -it UAC-Server bash
  3. Extract the war File

    1. Go to the installation folder

      cd /tmp/uac-installation-files
    2. Unzip the insall file

      unzip universal-controller-7.4.1.7.zip
    3. Rename the war file

      mv universal-controller-7.4.1.7-build.36.war uc.war
  4. Shutdown the Controller

    the $CATALINA_HOME var should already be set but if not, then set with:
    export $CATALINA_HOME=/usr/local/tomcat
    cd $CATALINA_HOME/bin
    ./shutdown
  5. Delete deployment folder and war file

    cd $CATALINA_HOME/webapps
    rm -r uc uc.war
  6. Copy the new war file

    mv /tmp/uac-installation-files/uc.war .
  7. Restart the UAC Controller

    cd $CATALINA_HOME/bin
    ./startup.sh
  8. Restart the OMS

    /etc/init.d/ubrokerd start