Exporting and Importing EDS Artifacts in an Offline Environment
This guide describes how to export EDS (Enthought Deployment Server) artifacts from an internet-connected environment and import them into an isolated (offline/air-gapped) EDS instance.
1. Prepare Your Environment
Before exporting EDS artifacts, ensure your environment is properly configured:
a. Create an EDM Environment
Start by creating a new EDM environment. In this guide, we'll use eds-sync
as the environment name:
edm environments create eds-sync
b. Install Required Tools
Install the enthought_it_tools
package into the eds-sync
environment from the enthought/platform
repository:
edm install -e eds-sync --add-repository enthought/platform enthought_it_tools
Note: Access to enthought/platform
requires valid credentials. Ensure your EDM configuration is properly authenticated.
c. Set Environment Variable and Install Package
Set the following environment variable to avoid OpenSSL legacy errors:
export CRYPTOGRAPHY_OPENSSL_NO_LEGACY=true
hvac
package in the same environment:edm install -e eds-sync hvac
2. Synchronize EDS Artifacts with an Offline System
This process involves two main steps: exporting EDS artifacts from a live environment and importing them into an EDS instance running on an isolated machine.
Important: Ensure that the target machine already has a running EDS container service. If not, refer to the official setup documentation or contact Enthought Support for assistance.
Step 1: Export EDS Artifacts
From an administrative machine with internet access, run the following command to export the required artifacts:
edm run -e eds-sync -- en eds export --platform <target_platform> <repository_1>, ..., <repository_n>
Example:
Export eggs for both Windows and Red Hat 8 from the enthought/free
repository:
for platform in win-x86_64 rh8-x86_64; do
edm run -e eds-sync -- en eds export \
--server packages.enthought.com \
--token <api token from .edm.yaml> \
--platform $platform \
enthought/free
done
By default, artifacts will be exported into a directory such as eds_export
or en_eds_export
.
Cleanup (Optional but Recommended):
After export, review the contents of the export directory. You may remove any unused platforms or Python versions. However, if a directory named None
is present, do not delete it, as it may be required for import.
Step 2: Transfer directory to the target machine
Transfer the exported artifact directory (e.g., eds_export
) to the target machine.
Step 3: Import Artifacts to the Offline EDS Instance
Then, import the packages into the offline EDS instance:
en eds import --server <server hostname> \
--directory <path to eds_export directory> \
--platform <target_platform> <repository_1>, ..., <repository_n>
Example:
To import packages for Windows and Red Hat 8 from the enthought/free
repository:
for platform in win-x86_64 rh8-x86_64; do
en eds import --server <server hostname> \
--directory <path to eds_export directory containing the eggs> \
--platform $platform \
enthought/free
done
Once complete, the packages will be available in the EDS server on the target machine.
Support
For additional help or troubleshooting, refer to the official Enthought documentation or contact Enthought Support.