You can perform an airgapped installation on Docker.

Install yb-voyager using a Docker image in an airgapped environment using the following steps:

  1. From a machine connected to the internet, run the following commands to pull and save the latest yb-voyager docker image (Pull the version from docker.io):

    docker pull yugabytedb/yb-voyager
    docker save -o yb-voyager-image.tar yugabytedb/yb-voyager:latest
    gzip yb-voyager-image.tar
    
  2. Download the yb-voyager wrapper script on the same machine using the following command:

    wget -O ./yb-voyager https://raw.githubusercontent.com/yugabyte/yb-voyager/main/docker/yb-voyager-docker
    
  3. Copy the yb-voyager-image.tar.gz and yb-voyager files to the airgapped machine.

  4. Load the docker image using the following command:

    gunzip yb-voyager-image.tar.gz
    docker load --input yb-voyager-image.tar
    
  5. Make the wrapper script executable and move it to the bin directory using the following commands:

    chmod +x yb-voyager
    sudo mv yb-voyager /usr/local/bin
    
  6. Check that yb-voyager is installed using the following command:

    yb-voyager version
    

You can perform an airgapped installation on RHEL 8 and CentOS 8.

  1. Download the airgapped bundle:

    wget https://s3.us-west-2.amazonaws.com/downloads.yugabyte.com/repos/airgapped/yb-voyager-1.8.2-0-rhel-8-x86_64.tar.gz
    
  2. Extract the bundle.

    tar -xvf <tar-bundle-name>
    

    It contains three packages - debezium, ora2pg, and yb-voyager.

  3. Download the airgapped installation script into the extracted bundle directory:

    wget -P </path/to/directory> raw.githubusercontent.com/yugabyte/yb-voyager/main/installer_scripts/install-voyager-airgapped.sh
    
  4. Make the script executable:

    chmod +x /path/to/directory/install-voyager-airgapped.sh
    
  5. Transfer the folder (which contains the 3 packages and the installer script) to the airgapped machine.

  6. Install all the dependencies on the airgapped machine.

  7. Run the installer script on the airgapped machine to check the dependencies and install voyager:

    ./install-voyager-airgapped.sh
    
  8. Check that yb-voyager is installed using the following command:

    yb-voyager version
    

Dependencies for RHEL and CentOS 8

Binutils: Minimum version: 2.25

Java: Minimum version: 17

pg_dump: Minimum version: 14

pg_restore: Minimum version: 14

psql: Minimum version: 14

Yum packages

  • gcc (no version dependency)
  • make (no version dependency)
  • sqlite (no version dependency)
  • perl (no version dependency)
  • perl-DBI (no version dependency)
  • perl-App-cpanminus (no version dependency)
  • perl-ExtUtils-MakeMaker (no version dependency)
  • mysql-devel (no version dependency)
  • oracle-instantclient-tools with exact version 21.5.0.0.0
  • oracle-instantclient-basic with exact version 21.5.0.0.0
  • oracle-instantclient-devel with exact version 21.5.0.0.0
  • oracle-instantclient-jdbc with exact version 21.5.0.0.0
  • oracle-instantclient-sqlplus with exact version 21.5.0.0.0

CPAN modules

  • DBD::mysql with minimum version 5.005
  • Test::NoWarnings with minimum version 1.06
  • DBD::Oracle with minimum version 1.83
  • String::Random (no version dependency)
  • IO::Compress::Base (no version dependency)

Installation Script

The script by default checks what dependencies are installed on the system and throws an error mentioning the missing dependencies. If all the dependencies are found to be installed, it proceeds with the installation of ora2pg, debezium, and yb-voyager.

Usage:

./install-voyager-airgapped.sh [options]

The options are as follows.

Argument Description/valid options
-d, --check-only-dependencies Check only dependencies and exit.
-f, --force-install Force install packages without checking dependencies.
-h, --help Display this help message.

Oracle Instant Client installation help for Centos/RHEL

You can download the oracle instant client rpms from the following links:

You can perform an airgapped installation on Ubuntu 22 and later.

  1. Download the airgapped bundle:

    wget https://s3.us-west-2.amazonaws.com/downloads.yugabyte.com/repos/airgapped/yb-voyager-1.8.2_0_debian.tar.gz
    
  2. Extract the bundle.

    tar -xvf <tar-bundle-name>
    

    It contains three packages - debezium, ora2pg, and yb-voyager.

  3. Download the airgapped installation script into the extracted bundle directory:

    wget -P </path/to/directory> raw.githubusercontent.com/yugabyte/yb-voyager/main/installer_scripts/install-voyager-airgapped.sh
    
  4. Make the script executable:

    chmod +x /path/to/directory/install-voyager-airgapped.sh
    
  5. Transfer the folder (which contains the 3 packages and the installer script) to the airgapped machine.

  6. Install all the dependencies on the airgapped machine.

  7. Run the install script on the airgapped machine to check the dependencies and install voyager:

    ./install-voyager-airgapped.sh
    
  8. Check that yb-voyager is installed using the following command:

    yb-voyager version
    

Dependencies for Ubuntu

Binutils: Minimum version: 2.25

Java: Minimum version: 17

pg_dump: Minimum version: 14

pg_restore: Minimum version: 14

psql: Minimum version: 14

APT packages

  • gcc (no version dependency)
  • sqlite3 (no version dependency)
  • perl (no version dependency)
  • libdbi-perl (no version dependency)
  • libaio1 (no version dependency)
  • cpanminus (no version dependency)
  • libmysqlclient-dev (no version dependency)
  • oracle-instantclient-tools with exact version 21.5.0.0.0
  • oracle-instantclient-basic with exact version 21.5.0.0.0
  • oracle-instantclient-devel with exact version 21.5.0.0.0
  • oracle-instantclient-jdbc with exact version 21.5.0.0.0
  • oracle-instantclient-sqlplus with exact version 21.5.0.0.0

CPAN modules

  • DBD::mysql with minimum version 5.005
  • Test::NoWarnings with minimum version 1.06
  • DBD::Oracle with minimum version 1.83
  • String::Random (no version dependency)
  • IO::Compress::Base (no version dependency)

Install script

The script by default checks what dependencies are installed on the system and throws an error mentioning the missing dependencies. If all the dependencies are found to be installed, it proceeds with the installation of ora2pg, debezium, and yb-voyager.

Usage:

./install-voyager-airgapped.sh [options]

The options are as follows.

Argument Description/valid options
-d, --check-only-dependencies Check only dependencies and exit.
-f, --force-install Force install packages without checking dependencies.
-h, --help Display this help message.

Oracle Instant Client installation help for Ubuntu

You can download the oracle instant client RPM packages from the following links: