Installing IBM Optim Data Privacy by using online mode

To install IBM Optim Data Privacy, you must configure and deploy the required containers. Use the online installation mode if you are installing on an internet-connected environment.

Step 1: Obtain an IBM Container Registry entitlement key

To install IBM Optim Data Privacy using online mode, you must have an IBM Container Registry (ICR) entitlement key. The key is used to authenticate with ICR when extracting installation scripts and when pulling product container images.

To get an ICR entitlement key:
  1. In a web browser, open the IBM Container Registry site.
  2. Click Add new key or copy an existing key, if available.
  3. Save the key to use in the steps that follow.

Step 2: Download and extract the installation archive

Ensure that your installation environment is connected and has access to the internet.

Ensure that you have all of the hardware and software prerequisites in place. For more information, see the Planning section. Review the Prerequisites topic and ensure that all prerequisites are met.

Download and extract the IBM Optim installation archive. For instructions, see Downloading IBM Optim Data Privacy.

Step 3: Prepare the host environment

Complete the following steps to prepare your installation environment:
  1. Log in as the non-root user that you plan to use to deploy IBM Optim, then run the following command to determine the user ID:
    id -u
    Save the user ID for later.
  2. Log in as a root user.
  3. Install the required operating system packages:
    dnf install -y curl podman podman-docker python3-pip slirp4netns fuse-overlayfs
  4. Create the required Podman runtime directories. Replace <USER-ID> with the user ID you saved earlier.
    mkdir -p /run/user/<USER-ID> && chmod 700 /run/user/<USER-ID> && chown -R <USER-ID>:<USER-ID> /run/user/<USER-ID>
  5. Enable lingering for the non-root user. Replace <USER-ID> with the user ID you saved earlier.
    loginctl enable-linger <USER-ID>
  6. Log in as the non-root user, then install Podman Compose if it is not already installed:
    pip3 install podman-compose --user
  7. Set the runtime base directory environment variable:
    export XDG_RUNTIME_DIR=/run/user/$(id -u)
  8. Enable the Podman container to auto-restart on boot:
    systemctl --user enable --now podman-restart.service
  9. If you are using a non-root mounted disk to store Podman container images, export the Podman storage directories in the same shell session before continuing:
    export XDG_CONFIG_HOME=/mount-point/podman/config
    export XDG_DATA_HOME=/mount-point/podman/data
    Important: These variables must be set in the same shell session in which you run the setup script. They are not inherited by child processes and will fall back to root defaults if not set here. Ensure that the Podman directories on the mount point are already created and owned by this user. For setup instructions, see Using mounted or extended storage volumes.

Step 4: Extract installation scripts from the MetaDB image

The installation scripts, Podman Compose files, and Keycloak realm configuration are embedded in the optim-metadb container image. You must extract them into your working directory before you can run the setup script.

To extract the installation scripts:
  1. Log in to ICR using the entitlement key you obtained in Step 1:
    podman login cp.icr.io -u cp

    Enter your entitlement key as the password when prompted.

  2. Create a temporary container from the MetaDB image and copy the scripts to your working directory:
    podman create --name temp-extract cp.icr.io/cp/ibm-optim/optim-metadb:2.0.0-amd64
    podman cp temp-extract:/tmp/releasepatch/. ./
    podman rm temp-extract

After this step, the following files are present in your working directory: scripts/setup-optim.sh, optim-compose.yaml, optim-compose-icr.yaml, sample.env, and the realm/ configuration folder.

Note: optim-compose-icr.yaml is generated at release time and is not available in the source repository. It is present in your working directory only after completing this extraction step.

Step 5: Configure the installation

The .env configuration file contains the parameters required for deployment. You must edit the environment variables in this file before running the setup script.

Default values are provided for most parameters. Modify them as necessary for your deployment environment.

To configure the installation:
  1. Create directories to store the following types of IBM Optim data:
    • Metastore (PostgreSQL) database files
    • Log files
    • Extract files
    • Job process job reports
    • Catalog metadata data stored in Apache Iceberg
    For example, to create a directory named /home/optim/data, run the following command:
    mkdir -p /home/optim/data
    Note: For guidance about data storage, including separating different data volumes, see Storage considerations.

    Take note of these directory paths. You will be prompted to provide them later.

  2. Copy sample.env and name it .env:
    cp sample.env .env
  3. Open the .env file for editing:
    vi .env
  4. Locate the section labeled Required user-set variables.
  5. Set following directory path parameters to point to the storage directories that you created earlier:
    Note: If the directories are already in use, ensure that they are owned by the designated installation user for IBM Optim Data Privacy.
    • OPTIM_METADB_DATA_DIR: Path to the directory where Metastore (PostgreSQL) database files are stored.
    • OPTIM_LOG_DIR: Path to the directory where log files are stored.
    • OPTIM_EXTRACT_DIR: Path to the directory where extract files are stored.
    • OPTIM_REPORT_DIR: Path to the directory where job process report files are stored.
    • OPTIM_CATALOG_DIR: Path to the Apache Iceberg catalog service's persistent metadata.
    Note: For guidance about data storage, including separating different data volumes and using mounted or external SAN/NAS volumes, see Storage considerations. If you are using a non-root mounted volume, review Using mounted or extended storage volumes before continuing.
  6. Optional: Review the Default variables section and modify other parameters as needed:
    • OPTIM_UI_PORT (default value: 7780)
    • OPTIM_METADB_PORT (default value: 5432)
    • OPTIM_KEYCLOAK_PORT (default value: 7780)
  7. Check your system to ensure that there are no port conflicts before saving the .env file.
  8. Optional: Review the Keycloak configuration for identity and access management.

    The installation package includes minimal-optim-realm.json. To use it, rename the file to optim-realm.json in the realm/ folder before you run the setup script. For more information about defining IBM Optim Data Privacy users, see Step 8: Set up a minimal Keycloak realm.

Step 6: Run the setup script

The setup script prepares the environment by generating certificates, initializing secrets, pulling product images from ICR, and starting the containers.

To run the setup script:
  1. Open a terminal in the installation directory.
  2. Run the setup script with the --online flag:
    ./scripts/setup-optim.sh --online
  3. When prompted, provide the following input:
    • Select the product to install (Test Data Management, Data Privacy, or Archive).
    • Specify the product license type (enterprise, solution, or workgroup).
    • Accept the license agreement.
    • Provide passwords for the following:
      • Metastore (PostgreSQL) database
      • Keycloak administrator console
      • Certificate truststore
      Important: Password requirements:
      • All passwords must be at least 6 characters in length.
      • Passwords can only include ASCII characters.
      • If you are rerunning the installation script and an existing IBM Optim Data Privacy instance is set up, you must provide the same passwords as the initial installation. Failure to do so will prevent access to the existing Metastore database.
    • Provide your ICR entitlement key when prompted. The script uses it to pull the product images from cp.icr.io.
  4. Wait for the script to complete. The script automatically performs the following actions:
    • Creates all required data directories
    • Generates a self-signed certificate and truststore to secure communication between containers
    • Initializes secrets for passwords and credential encryption
    • Pulls product container images from ICR
    • Starts the containers using Podman Compose (optim-compose-icr.yaml)
    Important: Do not interrupt the script while it is running. Doing so can result in an incomplete setup.
If the script completes but the containers are not yet running, you can start them manually:
podman-compose -f optim-compose-icr.yaml up -d
Note: The first time you start the containers, the internal Metastore database is initialized. This can take several minutes.
The following containers are started:
  • IBM Optim Metastore (PostgreSQL)
  • IBM Optim Runtime Engine
  • IBM Optim Core API
  • IBM Optim web UI
  • Keycloak (IAM)
  • Apache Spark
  • IBM Optim Catalog

Step 7: Verify the installation

After containers are running, verify the installation by accessing the IBM Optim UI.

To verify the installation:
  1. Determine the IBM Optim UI URL in one of the following ways:
    • Copy the URL from the console output of the installation script.
    • Open the .env file and locate the OPTIM_UI_URL variable.
    • Run the following command to retrieve the URL value:
      cat .env | grep OPTIM_UI_URL
  2. Copy the URL and paste it into a web browser.
  3. Log in using the default administrator credentials:
    • user: user1
    • password: 123
    Note: After verifying installation, delete the default user and set up your own administrators and users. For more information, see Managing users and roles.
  4. Confirm that the IBM Optim welcome page is displayed.

If the UI does not load, verify that all containers are running and that the correct ports are open.

Step 8: Set up a minimal Keycloak realm

The installation package includes minimal-optim-realm.json, a Keycloak realm file that is not preconfigured with IBM Optim users. You can rename it and use it as a starting point to configure your own users.

Important: You must define IBM Optim Data Privacy users in Keycloak before IBM Optim Data Privacy can be used.
To configure IBM Optim Data Privacy users:
  1. With the IBM Optim Data Privacy containers up and running, open a web browser and navigate to the Keycloak administrator console at https://<hostname>:8443.
  2. Log in as the Keycloak administrator user.
    • The default administrator username is admin. You can verify this by running:
      cat .env | grep KC_ADMIN
    • Provide the administrator password that you defined during installation. If you used an auto-generated password, retrieve it by running:
      podman secret inspect optim-keycloak-secret --format '{{.SecretData}}'
  3. Create a user for IBM Optim Data Privacy:
    1. From the Manage realms menu, choose Optim, then select Users > Add user.
    2. Type a username and provide any of the other optional information, then click Create.
    3. Click the Credentials tab, then click Set password.
    4. Select Groups > Join group and choose either admin-group or user-group.
    5. Create an organization and add users:
      1. Select Organization > Create organization. Type the organization name, domain, and description, then click Save.
      2. Click Attribute and add an account-id attribute with a unique or random UUID value (such as data-ai-01/75a10144-c57a-4c0a-889c-22044d012a9a).
      3. Click Members and then choose Add realm user. Choose the user that you want to add to the organization.

The created user can now log in to IBM Optim Data Privacy.

For more information about managing users, see Managing users and roles.

What to do next

The IBM Optim Data Privacy software is ready to use.

To configure the deployment further, see Configuring IBM Optim Data Privacy.