Preparing the Oracle Linux Computer for the Container Images

Use these steps to prepare a supported Linux host for the PeopleSoft container image installation.

Updating the Linux Operating System

Perform the following before the installation:

  1. (Optional) Perform a full operating system (OS) update on the Oracle Linux computer by running this command:
    sudo dnf update -y && sudo dnf clean all

    Note:

    An OS update can take a long time and download a few GB data for the update.
  2. If a kernel update was applied, reboot the computer so that it uses the new kernel.
    sudo reboot
  3. Locate nscd.

    This is required only for Linux 9.

    rpm -q nscd
    systemctl status nscd
    systemctl is-enabled nscd
  4. Disable nscd.

    This is required only for Linux 9.

    sudo systemctl stop nscd
    sudo systemctl disable nscd
    systemctl status nscd

Installing Podman and Podman Compose

Install or update podman.

  1. Check the status.
    podman -v
  2. If Podman is present, update it if necessary
    sudo dnf update -y podman
  3. If Podman is not present, follow the instructions in the Oracle Linux documentation to install it.

    See Oracle Linux, Podman User's Guide, Install Podman, https://docs.oracle.com/en/operating-systems/oracle-linux/podman/install.html.

  4. Install the Podman Compose package.

    See "Use Compose Files with Podman on Oracle Linux," Install Podman Compose, https://docs.oracle.com/en/learn/ol-podman-compose/index.html#introduction.

Setting Up Podman in Rootless Mode

Run the following commands to authorize users and group IDs:

echo "${USER}:231072:65536" | sudo tee -a "/etc/subuid"
echo "${USER}:231072:65536" | sudo tee -a "/etc/subgid"
podman system migrate
podman info | grep rootless

The output of the podman info command should include rootless: true.

Setting Podman Resource Limits

See the Podman Troubleshooting guide for instructions on allowing non-root users to set resource limits. Follow the instructions in item 26) Running containers with resource limits fails with a permissions error.

See Podman Troubleshooting, https://github.com/containers/podman/blob/main/troubleshooting.md

Configuring the Podman Storage

Configure the Podman storage path for a non-root user.These commands assume that the storage location is /scratch/podman-${USER}/storage.

See Oracle Linux, Podman User's Guide, Podman Storage, https://docs.oracle.com/en/operating-systems/oracle-linux/podman/storage.html#storage.

  1. Create directories in the storage location and give the owner read/write/execute permission with these commands.

    Replace ${USER} with the user ID.

    mkdir -p "/scratch/podman-${USER}/storage"
    mkdir -p "/scratch/podman-${USER}/storage/tmp"
    chmod -R 700 "/scratch/podman-${USER}/storage"
  2. Create a containers directory and a storage configuration file.
    mkdir -p ~/.config/containers
    vi ~/.config/containers/storage.conf
  3. Use the vi editor to add the following content to storage.conf.
    [storage]
    driver = "overlay"
    rootless_storage_path = "/scratch/podman-${USER}/storage"
  4. Save the file and exit the vi editor.

    Enter ESC to leave editing mode, then :wq.

Configuring the Container Configuration File

Set up the container configuration file.

Note:

Enter each command on a single line.
  1. Use the vi editor to create a container configuration file.
    vi ~/.config/containers/containers.conf
  2. Add the following content:
    [engine]
    stop_timeout = 90
    image_copy_tmp_dir = "storage"

    The parameter image_copy_tmp_dir is /scratch/podman-${USER}/storage/tmp in this example.

  3. Save the file and exit the vi editor.

    Enter ESC to leave editing mode, then :wq.

  4. Verify the configuration.
    podman info | grep -i storage
    The output should include the storage directory. For example:
    configFile: /home/user/.config/containers/storage.conf
    graphRoot: /scratch/podman-user/storage
    imageCopyTmpDir: /scratch/podman-user/storage/tmp
    volumePath: /scratch/podman-spurushe/storage/volumes

Preventing Shutdown on Logout

Enable linger to prevent systemd from shutting down your containers when you log out.

sudo loginctl enable-linger "$(whoami)"

See item 17) "rootless containers exit once the user session ends" in the Podman Troubleshooting guide.

See Podman Troubleshooting, https://github.com/containers/podman/blob/main/troubleshooting.md

Creating the nodocker File

Create a file called nodocker in /etc/containers. This is used by the Podman build.

sudo touch "/etc/containers/nodocker"

Setting Proxy Environment Variable

Ensure that the following proxy-related environment variables are configured with the correct values for your environment.

export http_proxy=<proxy value>
export https_proxy=<proxy value>
export no_proxy=<proxy values for exclusions>

Verifying Podman

To confirm that Podman works, enter this command:

podman run --rm hello-world

Or run this command:

podman run --rm quay.io/podman/hello

Modifying the sysctl Settings

Use the vi editor to modify the /etc/sysctl.conf file for the installation.

sudo vi "/etc/sysctl.conf"

These sysctl settings will be inherited by the containers.


# sysctl setting for PeopleTools
kernel.msgmnb = 65538
kernel.msgmni = 1024
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.core_uses_pid = 1
# sysctl setting for PeopleTools search (OSK)
vm.max_map_count=262144
net.core.somaxconn=1024

Verify the sysctl setting.

sudo /usr/sbin/sysctl -p

Verifying Access to the Oracle Container Registry

This section is required for users that will build and run containers. The user should perform these steps to verify they can obtain the necessary images from Oracle Container Registry (OCR). This can be a non-root user.

Note:

The procedure to install the PeopleSoft container images does not access the OCR. This access is needed in the next section to verify storage.
  1. Generate an Oracle Container Registry authentication token.

    Note:

    The authentication token is required to download licensed software.

    After logging into the registry, use the command Generate Secret Key. Use the resulting key in the next step.

    See Oracle Linux, Podman User's Guide, Container Registries, https://docs.oracle.com/en/operating-systems/oracle-linux/podman/registries.html#registry_ocr_token.

  2. Log in to Oracle Container Registry with Podman.
    podman login -u <username> -p <auth token generated from container-⇒
    registry.oracle.com> container-registry.oracle.com
  3. Sign in using your Oracle Account to accept the license agreement for the Oracle container you have selected.
  4. Test pulling an Oracle Linux 9 image.
    podman pull container-registry.oracle.com/os/oraclelinux:9

Configuring Podman Storage Maintenance

Use the following steps to inspect and clean Podman storage when standard pruning is insufficient. Use with caution as some actions are destructive.

  1. View the Podman storage location.
    podman info | grep graphRoot
  2. View the Podman storage size.

    Note:

    The command ends with a period, indicating the current directory.
    cd <podman storage location>; sudo du -hs .
  3. Reset Podman.
    podman system reset -f
  4. View the Podman storage size again.
    cd <podman storage location>; sudo du -hs .
  5. Log in to Oracle Container Registry as described in the previous section.
    mkdir -p "<podman storage location>/tmp"
    podman login -u <username> -p <auth token generated from container-⇒
    registry.oracle.com> container-registry.oracle.com
  6. Test pulling an image.
    podman pull oraclelinux:9