Skip to main content

13 mai 2026

Deploying containers using dux CLI

After the prerequisites are met and the manifest file is modified, use the dux deploy command to deploy the required gateway container to the specified hosts.

Dux commands with single or multiple containers

Behavior based on manifest files

  • If only one manifest file is present in the default directory, dux commands automatically use that manifest file.

  • If multiple manifest files are present, the user must select a container type or explicitly specify it in the command. This flexibility allows users to manage multiple container types efficiently using the dux CLI tool.

Single-Container deployment

If only one type of container is deployed (only one manifest file is present in the default directory), all dux commands work as expected without requiring the user to specify the container type.

Example

If only cg_manifest.yml was present in the default directory:

dux status

Result

Status of Content Gateway containers deployed
1. Host: 192.xxx.xx.xxx  Status: Not Deployed

Multiple-Container deployment

If multiple containers are deployed or multiple manifest files are present in the default directory, dux commands prompt the user to select a container type before executing the command.

Example

dux status

Multiple manifests found. Please select a container type:
1. Tunnel (/opt/omnissa/dux/ts_manifest.yml)
2. EIC (/opt/omnissa/dux/eic_manifest.yml)
3. Content Gateway (/opt/omnissa/dux/cg_manifest.yml)

Enter the number of the container: 3

Status of Content Gateway containers deployed

1. Host: 192.168.84.166	Status: UP	Version: 25.12.0.7 	Operating System: Linux	Deployment Method: appliance

Execute the deploy command

After the manifest is updated, use the deploy command to deploy the container on the specified hosts.

dux deploy -h

Usage:

dux <container> deploy [flags]

FlagDescriptionSupported container types
-d, --dry-runCheck if manifest is good to deployCG, SEG, Tunnel, EIC, PAC Reader
-p, --ipHostname or IP as specified in the manifest to deploy on a single hostCG, SEG, Tunnel, EIC, PAC Reader
-m, --manifest-fileCustom manifest file path (default /opt/omnissa/dux/cg_manifest.yml)CG, SEG, Tunnel, EIC, PAC Reader
-n, --node-numberNode number as listed in manifest to deploy on a single hostCG, SEG, Tunnel, EIC
-q, --quietQuiet mode: interactive ssh password prompts are disabledCG, SEG, Tunnel, EIC, PAC Reader
-u, --uem-passwordPassword to authenticate with the Workspace ONE UEM API serverCG, SEG, Tunnel, PAC Reader
-y, --yesAuto accept all promptsCG, SEG, Tunnel, EIC, PAC Reader
-o, --outbound-proxy-password stringPassword to authenticate with the Outbound Proxy hostTunnel

Examples

ScenarioCommandComments / Example
Deploy using the default manifestdux deployDeploy containers on all hosts in the order listed in the manifest.
Deploy on PAC Readerdux pacreader deployDeploy PAC Reader
Deploy using a manifest from a different pathdux deploy -m <path>dux deploy -m ~/Downloads/ts_manifest_xyz.yml
Provide the UEM password as a command-line optiondux deploy -u <uem_password>dux deploy -u MyUemPassword
Deploy container to specific/few remote hosts (by node)dux deploy -ndux deploy -n 1 -n 3
Deploy to a specific host (by IP)dux deploy -p <host IP>dux deploy -p 1.2.3.4

Additional Considerations

Running setup script without sudo permissions (no_sudo: true)

Content Gateway and SEG deployment requires the creation of specific users and groups, setting directory permissions, and sudo access on the container host.

When no_sudo: true is set in the manifest, the setup script must be executed manually before deployment.

The script setup_host_for_cg.sh is created by dux init command in /opt/omnissa/dux/scripts directory for linux (the path varies for different platforms).

On Content Gateway

The script must be copied and executed on the container host (if remote) before running dux deploy.

dux deploy

Enter UEM password: 
Preparing for Content Gateway container deployment on 192.168.84.166
⚠️  Host 192.168.84.166: Sudo permissions for 'system' and 'file_operations' are required to run the setup script. Deployment may fail.
Please manually copy and run the setup script (/opt/omnissa/dux/scripts/setup_host_for_cg.sh) on the host: 192.168.84.166 before proceeding
Do you want to continue deployment on this host? (y/n): n
Deployment failed error="deployment aborted by user due to lack of sudo permissions on host: 192.168.84.166"
exit status 1

Steps to execute setup script before deployment

If no_sudo: true is set in the Content Gateway cg_manifest.yml file, you must manually execute the setup_host_for_cg.sh script on the container host before proceeding with deployment.

  1. Copy the script to the remote host. Use scp or any file transfer method to copy the script to the remote host.

    scp /opt/omnissa/dux/scripts/setup_host_for_cg.sh <remote_user>@<remote_host>:/home/remote_user/

    Where,

    remote_user - SSH user on the remote machine

    remote_host - IP address or hostname of the remote machine

  2. On the remote host, ensure the script has executable permissions.

    chmod +x /home/<remote_user>/setup_host_for_cg.sh

  3. Run the script on the remote host with sudo.

    sudo ./setup_host_for_cg.sh <host_working_dir> <remote_user>

    Where,

    host_working_dir - The host_base_dir or global_base_dir directory specified in the manifest yaml file.

    remote_user - The SSH user defined in the manifest.

    Example

    If the host_base_dir is /home/user1/cg and the ssh_user is user1:

    sudo ./setup_host_for_cg.sh /home/user1/cg user1

Handling Windows-to-Linux script transfer

If you are using dux on a Windows machine and need to copy the setup_host_for_cg.sh script to a remote Linux host, you might encounter issues with CRLF (Carriage Return and Line Feed) characters. These characters are specific to Windows and can cause errors when running the script on Linux.

To convert CRLF to LF on the remote host

  1. Log in to the remote host: ssh <remote_user>@<remote_host>

  2. Navigate to the script directory: cd /home/<remote_user>/

  3. Convert the CRLF line endings to LF: tr -d '\r' < setup_host_for_cg.sh > setup_host_for_cg_fixed.sh
    This command creates a new file setup_host_for_cg_fixed.sh with the corrected line endings.

  4. Run the executable script with sudo.

On Secure Email Gateway

The script is automatically copied to the remote host. Run the script manually on the container host before running dux deploy. The user is prompted during deployment.

dux deploy

Enter UEM password: 
Preparing for SEG container deployment on 192.10.84.186
Setup script prepared at /tmp/script/setup_host_for_seg_prepared.sh for manual execution
⚠️  Host 192.10.84.186 requires manual setup (NoSudo file operations):
Run setup script: sudo /tmp/script/setup_host_for_seg_prepared.sh
Continue deployment (y/N): y
SEG container image is already present on the host. Will not need to copy the image for deployment
Deploying new SEG container on 192.10.84.186....

c3dc0ae7a43e1cc9f4056c0cf749910508260cbdd58c3adabab47b120de0e6a3

Checking if SEG container is running on 192.10.84.186....
Fetching the deployment status. Please wait. This may take some time... \Version: 2.32.0        Mail Server Connectivity: DOWN  REST API Connectivity: UP       Requests since startup: 0       Device Policy Size in Active Cache: 55
Deploy command has completed on 192.10.84.186

Cette page vous a-t-elle été utile ?

Envoyer un commentaire sur cette rubrique

Cette rubrique vous a-t-elle été utile ?

N'indiquez aucune information personnelle ou confidentielle.

Génération du lien…