Synchronizing content between orcharhino Servers

In multi-server orcharhino deployments, use Inter-Server Synchronization to deliver content from upstream to downstream orcharhino Servers over a network or through export and import, including the Library environment, content view versions, and individual repositories.

Inter-Server Synchronization configurations

Depending on network connectivity between upstream and downstream orcharhino Servers, you can synchronize content over HTTPS with network sync or by exporting and importing content when servers are air gapped.

There are two possible ISS configurations of orcharhino, depending on how you deployed your infrastructure:

ISS Network Sync

If your upstream server can communicate with the downstream server over a network, you can synchronize content over HTTPS.

Configure your orcharhino to synchronize content over a network. For more information, see Configuring server to synchronize content over a network by using orcharhino management UI.

ISS Export Sync

If your upstream and downstream servers are air gapped, you can synchronize content by using export and import.

Configure your orcharhino to synchronize content by using export and import. For more information, see Configuring projectserver to synchronize content through exports by using orcharhino management UI.

Configuring orcharhino Server to synchronize content over a network by using orcharhino management UI

To synchronize content over a network, configure your downstream orcharhino Server to pull repositories from a connected upstream orcharhino Server.

Prerequisites
  • A network connection exists between the upstream orcharhino Server and the downstream orcharhino Server.

  • You imported the same subscription manifest on both the upstream and downstream orcharhino Server.

  • On the upstream orcharhino Server, you enabled the required repositories for the organization.

  • The upstream user is an admin or has the following permissions:

    • view_organizations

    • view_products

    • export_content

    • view_lifecycle_environments

    • view_content_views

  • On the downstream orcharhino Server, you have imported the SSL certificate of the upstream orcharhino Server using the contents of http://upstream-orcharhino.example.com/pub/katello-server-ca.crt.

  • The downstream user is an admin or has the permissions to create product repositories and organizations.

Procedure
  1. Navigate to Content > Subscriptions.

  2. Click Manage Manifest.

  3. Navigate to the CDN Configuration tab.

  4. Select the Network Sync tab.

  5. In the URL field, enter the address of the upstream orcharhino Server.

  6. In the Username, enter your username for upstream login.

  7. In the Password, enter your password or personal access token for upstream login.

  8. In the Organization label field, enter the label of the upstream organization.

  9. Optional: In the Lifecycle Environment Label field, enter the label of the upstream lifecycle environment. Default is Library.

  10. Optional: In the Content view label field, enter the label of the upstream content view. Default is Default_Organization_View.

  11. From the SSL CA Content Credential menu, select a CA certificate used by the upstream orcharhino Server.

  12. Click Update.

  13. In the orcharhino management UI, navigate to Content > Products.

  14. Select the product that contains the repositories that you want to synchronize.

  15. From the Select Action menu, select Sync Now to synchronize all repositories within the product.

    You can also create a synchronization plan to ensure updates on a regular basis.

Configuring orcharhino Server to synchronize content over a network by using Hammer CLI

To synchronize content over a network, configure your downstream orcharhino Server to pull repositories from a connected upstream orcharhino Server.

Prerequisites
  • A network connection exists between the upstream orcharhino Server and the downstream orcharhino Server.

  • You imported the same subscription manifest on both the upstream and downstream orcharhino Server.

  • On the upstream orcharhino Server, you enabled the required repositories for the organization.

  • The upstream user is an admin or has the following permissions:

    • view_organizations

    • view_products

    • export_content

    • view_lifecycle_environments

    • view_content_views

  • On the downstream orcharhino Server, you have imported the SSL certificate of the upstream orcharhino Server using the contents of http://upstream-orcharhino.example.com/pub/katello-server-ca.crt.

  • The downstream user is an admin or has the permissions to create product repositories and organizations.

Procedure
  1. Connect to your downstream orcharhino Server using SSH.

  2. View information about the upstream CA certificate:

    $ hammer content-credential show \
    --name="My_Upstream_CA_Cert" \
    --organization="My_Downstream_Organization"

    Note the ID of the CA certificate for the next step.

  3. Set CDN configuration to an upstream orcharhino Server:

    $ hammer organization configure-cdn \
    --name="My_Downstream_Organization" \
    --type=network_sync \
    --url https://upstream-orcharhino.example.com \
    --username upstream_username --password upstream_password \
    --ssl-ca-credential-id "My_Upstream_CA_Cert_ID" \
    --upstream-organization-label="_My_Upstream_Organization" \
    [--upstream-lifecycle-environment-label="My_Lifecycle_Environment"] \
    [--upstream-content-view-label="My_Content_View"]

    The default lifecycle environment label is Library. The default content view label is Default_Organization_View.

Configuring orcharhino Server to synchronize content through exports by using orcharhino management UI

If you deployed your downstream orcharhino Server as air gapped, configure your orcharhino Server as such to avoid attempts to consume content from a network.

Procedure
  1. In the orcharhino management UI, navigate to Content > Subscriptions.

  2. Click Manage Manifest.

  3. Switch to the CDN Configuration tab.

  4. Select the Export Sync tab.

  5. Click Update.

Configuring orcharhino Server to synchronize content through exports by using Hammer CLI

If you deployed your downstream orcharhino Server as air gapped, configure your orcharhino Server as such to avoid attempts to consume content from a network.

Procedure
  1. Log in to your orcharhino Server by using SSH.

  2. Set CDN configuration to sync by using exports:

    $ hammer organization configure-cdn \
    --name="My_Organization" \
    --type=export_sync

Synchronizing a repository

To synchronize repositories over a network, configure the repositories on the downstream orcharhino Server to synchronize from published URLs on the upstream server. Red Hat repositories do not require this configuration.

Procedure
  1. On the connected orcharhino Server, perform the following steps:

    1. In the orcharhino management UI, navigate to Content > Products.

    2. Click on the custom product.

    3. Click on the custom repository.

    4. Copy the Published At: URL.

  2. On the disconnected orcharhino Server, perform the following steps:

    1. Download the katello-server-ca.crt file from the connected orcharhino Server:

      $ curl http://orcharhino.example.com/pub/katello-server-ca.crt
    2. Create an SSL Content Credential with the contents of katello-server-ca.crt. For more information on creating an SSL Content Credential, see Importing custom ssl certificates by using orcharhino management UI.

    3. In the orcharhino management UI, navigate to Content > Products.

    4. Create your custom product with the following:

      • Upstream URL: Paste the link that you copied earlier.

      • SSL CA Cert: Select the SSL certificate that was transferred from your connected orcharhino Server.

    For more information on creating a custom product, see Creating a custom product by using orcharhino management UI.

Content synchronization by using export and import

Export content from an upstream orcharhino Server and import it into a downstream server when network connectivity is limited or air gapped. Choose an approach based on what content you need to synchronize.

Synchronizing content by using export and import requires the same major version of orcharhino on both the downstream and upstream orcharhino Servers.

When you are unable to match upstream and downstream orcharhino versions, you can use:

  • Syncable exports and imports.

  • Inter-Server Synchronization (ISS) with your upstream orcharhino connected to the internet and your downstream orcharhino connected to the upstream orcharhino.

Using an upstream orcharhino Server as a content store

Export Library content from an upstream orcharhino Server that serves as a content store and import it on the downstream server that manages content for isolated infrastructure.

Procedure
  1. On the upstream orcharhino Server, perform the following steps:

    1. Ensure that repositories are using the Immediate download policy in one of the following ways:

      1. For existing repositories using On Demand, change their download policy on the repository details page to Immediate.

      2. Ensure that the Default download policy is set to Immediate for custom repositories.

    2. Enable the content that you want to synchronize.

      If you want to sync custom content, first create a product and then synchronize repositories.

    3. Synchronize the enabled content:

      1. On the first export, perform a complete Library export so that all the synchronized content is exported. This generates content archives that you can later import into one or more downstream orcharhino Servers.

      2. Export all future updates on the upstream orcharhino Server incrementally. This generates leaner content archives that contain only a recent set of updates. For example, if you enable and synchronize a new repository, the next exported content archive contains content only from the newly enabled repository.

  2. On the downstream orcharhino Server, perform the following steps:

    1. Bring the content exported from the upstream orcharhino Server over to the hard disk.

    2. Place it inside a directory under /var/lib/pulp/imports/.

    3. Import the content to an organization.

      You can then manage content using content views or lifecycle environments as you require.

Using an upstream orcharhino Server to synchronize content view versions

Curate updates on the upstream orcharhino Server into content views and lifecycle environments, then export promoted content and import it on the downstream server that manages isolated infrastructure.

Procedure
  1. On the upstream orcharhino Server, perform the following steps:

    1. Ensure that repositories are using the Immediate download policy in one of the following ways:

      1. For existing repositories using On Demand, change their download policy on the repository details page to Immediate.

      2. Ensure that the Default download policy is set to Immediate for custom repositories.

    2. Enable the content that you want to synchronize.

      If you want to sync custom content, first create a product and then synchronize repositories.

    3. Synchronize the enabled content:

      1. For the first export, perform a complete version export on the content view version that you want to export. This generates content archives that you can import into one or more downstream orcharhino Servers.

      2. Export all future updates in the connected orcharhino Servers incrementally. This generates leaner content archives that contain changes only from the recent set of updates. For example, if your content view has a new repository, this exported content archive contains only the latest changes.

      3. When you have new content, republish the content views that include this content before exporting the increment. This creates a new content view version with the appropriate content to export.

  2. On the downstream orcharhino Server, perform the following steps:

    1. Bring the content exported from the upstream orcharhino Server over to the hard disk.

    2. Place it inside a directory under /var/lib/pulp/imports/.

    3. Import the content to the organization that you want. This will create a content view version from the exported content archives and then import content appropriately.

Synchronizing a single repository

Export a single repository from the upstream orcharhino Server and import it on the downstream server when you need to synchronize only specific content between air-gapped servers.

Procedure
  1. On the upstream orcharhino Server, perform the following steps:

    1. Ensure that the repository is using the Immediate download policy in one of the following ways:

      1. For existing repositories using On Demand, change their download policy on the repository details page to Immediate.

      2. Ensure that the Default download policy is set to Immediate for custom repositories.

    2. Enable the content that you want to synchronize.

      If you want to sync custom content, first create a product and then synchronize product repositories.

    3. Synchronize the enabled content:

    4. On the first export, perform a complete repository export so that all the synchronized content is exported. This generates content archives that you can later import into one or more downstream orcharhino Servers.

    5. Export all future updates on the upstream orcharhino Server incrementally. This generates leaner content archives that contain only a recent set of updates.

  2. On the downstream orcharhino Server, perform the following steps:

    1. Bring the content exported from the upstream orcharhino Server over to the hard disk.

    2. Place it inside a directory under /var/lib/pulp/imports/.

    3. Import the content to an organization.

      You can then manage content using content views or lifecycle environments as you require.

Exporting content from orcharhino Server

When synchronizing content by using export and import, export the Library environment, content view versions, or individual repositories from the upstream orcharhino Server.

Exporting the Library environment

You can export all Library content for an organization to an archive file and recreate the same repositories on another orcharhino Server or organization.

The exported archive file contains the following data:

  • A JSON file containing content view version metadata.

  • An archive file containing all the repositories from the Library environment of the organization.

You can export the following content from orcharhino Server:

  • Ansible collections

  • Deb content

  • Docker content

  • File type content

  • Kickstart repositories

  • Yum content

Prerequisites
  • The export directory has enough free storage space to accommodate the export.

  • The /var/lib/pulp/exports/ directory has enough free storage space equivalent to the size of the repositories being exported for temporary files created during the export process.

  • Download policy is set to Immediate for all repositories within the Library lifecycle environment you export. For more information, see Download Policies Overview content-management.

  • Products that you export are synchronized to the required date.

  • The user exporting the content has the Content Exporter role.

Procedure
  1. Export the Library environment for your organization:

    $ hammer content-export complete library --organization="My_Organization"

    In many cases the exported archive might be several gigabytes in size. You might want to split it into chunks of a smaller size. You can use the --chunk-size-gb option to split the export into smaller chunks, for example --chunk-size-gb=2 to split the archive into 2 GB chunks.

  2. A new content view Export-Library is created in the organization. This content view contains all the repositories belonging to this organization. A new version of this content view is published and exported automatically.

Verification
  • Verify that the archive containing the exported version of a content view is located in the export directory:

    $ ls -lh /var/lib/pulp/exports/My_Organization/Export-Library/1.0/2021-03-02T03-35-24-00-00/

    You need all three files, the tar.gz archive file, the toc.json file, and the metadata.json file, to import the content successfully.

Exporting the Library environment in the syncable format

You can export content in the Library environment of an organization to a syncable format that you can use to create your custom CDN and synchronize the content from the custom CDN over HTTP/HTTPS.

You can use the generated content to create the same repository in another orcharhino Server or in another orcharhino Server organization by using content import. On import of the exported archive, a regular content view is created or updated on your importing orcharhino Server. For more information, see Importing a Content View Version content-management.

You can export the following content types in the syncable format from orcharhino Server:

  • File type content

  • Kickstart repositories

  • Yum content

You cannot export Ansible collections, Deb content, or Docker content in the syncable format.

The export contains directories with the packages, listing files, and metadata of the repository in Yum format that can be used to synchronize in the importing orcharhino Server.

Prerequisites
  • Download policy is set to Immediate for all repositories within the Library lifecycle environment you export. For more information, see Download Policies Overview content-management.

  • Products that you export are synchronized to the required date.

  • The user exporting the content has the Content Exporter role.

Procedure
  1. Use the organization name or ID to export:

    $ hammer content-export complete library \
    --organization="My_Organization" \
    --format=syncable
  2. Optional: Verify that the exported content is located in the export directory:

    $ du -sh /var/lib/pulp/exports/My_Organization/Export-My_Repository/1.0/2021-03-02T03-35-24-00-00

Exporting the Library environment incrementally

You can export only Library content that changed since the last export to reduce archive size and system resource usage when full Library exports are too large.

Exporting Library content can be a very expensive operation in terms of system resources. The size of the exported Library depends on the number of products. Organizations that have multiple SUSE Linux Enterprise Server trees can occupy several gigabytes of space on orcharhino Server.

In such cases, you can create an incremental export which contains only pieces of content that have changed since the last export. Incremental exports typically result in smaller archive files than the full exports.

You can export the following content from orcharhino Server:

  • Ansible collections

  • Deb content

  • Docker content

  • File type content

  • Kickstart repositories

  • Yum content

The example below shows incremental export of all repositories in the organization’s Library.

Procedure
  1. Create an incremental export:

    $ hammer content-export incremental library \
    --organization="My_Organization"

    If you want to create a syncable export, add --format=syncable. By default, orcharhino creates an importable export.

Next steps
  • Optional: View the exported data:

    $ find /var/lib/pulp/exports/My_Organization/Export-Library/

Exporting a content view version

You can export a content view version to an archive file and recreate the same version on another orcharhino Server. orcharhino exports composite content views as regular content views.

The composite nature is not retained. On importing the exported archive, a regular content view is created or updated on your downstream orcharhino Server.

The exported archive file contains the following data:

  • A JSON file containing content view version metadata

  • An archive file containing all the repositories included into the content view version

You can export the following content from orcharhino Server:

  • Ansible collections

  • Deb content

  • Docker content

  • File type content

  • Kickstart repositories

  • Yum content

orcharhino does not export content view definitions and metadata such as package filters.

Prerequisites
  • The export directory has enough free storage space to accommodate the export.

  • The /var/lib/pulp/exports/ directory has enough free storage space equivalent to the size of the repositories being exported for temporary files created during the export process.

  • Download policy is set to Immediate for all repositories within the content view version you export. For more information, see Download Policies Overview content-management.

  • Products that you export are synchronized to the required date.

  • The user exporting the content has the Content Exporter role.

Procedure
  1. List versions of the content view that are available for export:

    $ hammer content-view version list \
    --content-view="My_Content_View" \
    --organization="My_Organization"

    Note the version number that you want to export. In the following example, the version number is 1.0.

  2. Export the content view version:

    $ hammer content-export complete version \
    --content-view="Content_View_Name" \
    --version=1.0 \
    --organization="My_Organization"

    In many cases, the exported archive might be several gigabytes in size. You might want to split it into smaller chunks of a smaller size. You can use the --chunk-size-gb option to export the content view version into smaller chunks, for example --chunk-size-gb=2 to split the archives into 2 GB chunks.

Verification
  1. Verify that the archive containing the exported version of a content view is located in the export directory:

    $ ls -lh /var/lib/pulp/exports/My_Organization/Content_View_Name/1.0/2021-02-25T18-59-26-00-00/

    You require all three files, the tar.gz archive file, the toc.json file, and the metadata.json file, to import the content successfully.

Exporting a content view version in the syncable format

You can export a content view version in syncable format to serve from a custom CDN over HTTP/HTTPS or import on a matching orcharhino version.

After you have exported the content view, you can do either of the following:

  • Synchronize the content from your custom CDN over HTTP/HTTPS.

  • Import the content using hammer content-import. Note that this requires both the Export and Import servers to run orcharhino 7.10.

You can use the generated content to create the same repository in another orcharhino Server or in another orcharhino Server organization using content import. On importing the exported archive, a regular content view is created or updated on your downstream orcharhino Server.

The export contains directories with the packages, listing files, and metadata of the repository in Yum format that can be used to synchronize in the importing orcharhino Server.

You can export the following content types in the syncable format from orcharhino Server:

  • File type content

  • Kickstart repositories

  • Yum content

You cannot export Ansible collections, Deb content, or Docker content in the syncable format.

Prerequisites
  • Download policy is set to Immediate for all repositories within the content view you export. For more information, see Download Policies Overview content-management.

  • Products that you export are synchronized to the required date.

  • The user exporting the content has the Content Exporter role.

Procedure
  1. List versions of the content view that are available for export:

    $ hammer content-view version list \
    --content-view="My_Content_View_Name" \
    --organization="My_Organization"

    Note the version number that you want to export. In the following example, the version number is 1.0.

  2. Export the content view version in a syncable format:

    $ hammer content-export complete version \
    --content-view="My_Content_View_Name" \
    --version=1.0 \
    --organization="My_Organization" \
    --format=syncable
Verification
  • Verify that the exported content is located in the export directory:

    $ ls -lh /var/lib/pulp/exports/My_Organization/My_Content_View_Name/1.0/2021-02-25T18-59-26-00-00/

Exporting a content view version incrementally

You can export only the content that changed in a content view version since the last export to reduce archive size when full exports are too resource-intensive.

Exporting complete content view versions can be a very expensive operation in terms of system resources. The size of the exported content view versions depends on the number of products. Content view versions that have multiple SUSE Linux Enterprise Server trees can occupy several gigabytes of space on orcharhino Server.

In such cases, you can create an incremental export which contains only pieces of content that have changed since the last export. Incremental exports typically result in smaller archive files than the full exports.

You can export the following content from orcharhino Server:

  • Ansible collections

  • Deb content

  • Docker content

  • File type content

  • Kickstart repositories

  • Yum content

Procedure
  1. Create an incremental export:

    $ hammer content-export incremental version \
    --content-view="My_Content_View" \
    --organization="My_Organization" \
    --version="My_Content_View_Version"

    If you want to create a syncable export, add --format=syncable. By default, orcharhino creates an importable export.

Next steps
  • Optional: View the exported content view:

    $ find /var/lib/pulp/exports/My_Organization/My_Exported_Content_View/My_Content_View_Version/
  • You can import your exported content view version into orcharhino Server. For more information, see Importing a Content View Version content-management.

Exporting a repository

You can export a repository from the Library environment to an archive file and recreate the same repository on another orcharhino Server or organization.

You can export the following content from orcharhino Server:

  • Ansible collections

  • Deb content

  • Docker content

  • File type content

  • Kickstart repositories

  • Yum content

The export contains the following data:

  • Two JSON files containing repository metadata.

  • One or more archive files containing the contents of the repository from the Library environment of the organization.

You need all the files, tar.gz, toc.json and metadata.json, to be able to import.

Prerequisites
  • The export directory has enough free storage space to accommodate the export.

  • The /var/lib/pulp/exports/ directory has enough free storage space equivalent to the size of the repository that you export.

  • Download policy is set to Immediate for the repository you export. For more information, see Download Policies Overview content-management.

  • Products that you export are synchronized to the required date.

  • The user exporting the content has the Content Exporter role.

Procedure
  1. Export a repository:

    $ hammer content-export complete repository \
    --name="My_Repository" \
    --product="My_Product" \
    --organization="My_Organization"

    The size of the exported archive depends on the number and size of the packages within the repository. If you want to split the exported archive into chunks, export your repository using the --chunk-size-gb argument to limit the size by an integer value in gigabytes, for example --chunk-size-gb=2.

  2. Optional: Verify that the exported archive is located in the export directory:

    $ ls -lh /var/lib/pulp/exports/My_Organization/Export-My_Repository/1.0/2022-09-02T03-35-24-00-00/

Exporting a repository in the syncable format

You can export the content of a repository in the Library environment of an organization to a syncable format that you can use to create your custom CDN and synchronize the content from the custom CDN over HTTP/HTTPS.

You can use the generated content to create the same repository in another orcharhino Server or in another orcharhino Server organization using content import. On importing the exported archive, a regular content view is created or updated on your downstream orcharhino Server.

The export contains directories with the packages, listing files, and metadata of the repository in Yum format that can be used to synchronize in the importing orcharhino Server.

You can export the following content types in the syncable format from orcharhino Server:

  • File type content

  • Kickstart repositories

  • Yum content

You cannot export Ansible collections, Deb content, or Docker content in the syncable format.

Prerequisites
Procedure
  1. Export a repository using the repository name or ID:

    $ hammer content-export complete repository \
    --organization="My_Organization" \
    --product="My_Product" \
    --name="My_Repository" \
    --format=syncable
  2. Optional: Verify that the exported content is located in the export directory:

    $ du -sh /var/lib/pulp/exports/My_Organization/Export-My_Repository/1.0/2021-03-02T03-35-24-00-00

Exporting a repository incrementally

You can export only repository content that changed since the previous export to reduce archive size when full repository exports are too large.

Exporting a repository can be a very expensive operation in terms of system resources. A typical SUSE Linux Enterprise Server tree may occupy several gigabytes of space on orcharhino Server.

In such cases, you can use Incremental Export to export only pieces of content that changed since the previous export. Incremental exports typically result in smaller archive files than the full exports.

You can export the following content from orcharhino Server:

  • Ansible collections

  • Deb content

  • Docker content

  • File type content

  • Kickstart repositories

  • Yum content

The example below shows incremental export of a repository in the Library lifecycle environment.

Procedure
  1. Create an incremental export:

    $ hammer content-export incremental repository \
    --name="My_Repository" \
    --organization="My_Organization" \
    --product="My_Product"
  2. Optional: View the exported data:

    $ ls -lh /var/lib/pulp/exports/My_Organization/Export-My_Repository/3.0/2021-03-02T03-35-24-00-00/
    total 172K
    -rw-r--r--. 1 pulp pulp  20M Mar  2 04:22 export-436882d8-de5a-48e9-a30a-17169318f908-20210302_0422.tar.gz
    -rw-r--r--. 1 pulp pulp  333 Mar  2 04:22 export-436882d8-de5a-48e9-a30a-17169318f908-20210302_0422-toc.json
    -rw-r--r--. 1 root root  492 Mar  2 04:22 metadata.json

Exporting a repository incrementally in the syncable format

You can export only changed repository content in the syncable format to reduce transfer size when serving content from a custom CDN over HTTP/HTTPS.

Exporting a repository can be a very expensive operation in terms of system resources. A typical SUSE Linux Enterprise Server tree may occupy several gigabytes of space on orcharhino Server.

In such cases, you can use Incremental Export to export only pieces of content that changed since the previous export. Incremental exports typically result in smaller archive files than full exports.

You can export the following content types in the syncable format from orcharhino Server:

  • File type content

  • Kickstart repositories

  • Yum content

You cannot export Ansible collections, Deb content, or Docker content in the syncable format.

The procedure below shows an incremental export of a repository in the Library lifecycle environment.

Procedure
  1. Create an incremental export:

    $ hammer content-export incremental repository \
    --format=syncable \
    --name="My_Repository" \
    --organization="My_Organization" \
    --product="My_Product"
  2. Optional: View the exported data:

    $ find /var/lib/pulp/exports/Default_Organization/My_Product/2.0/2023-03-09T10-55-48-05-00/ -name "*.rpm"

Keeping track of your exports

Query and manage export records on the upstream orcharhino Server to organize incremental exports and track which content was exported to specific downstream servers.

Procedure
  1. Optional: Track the destinations of content exports. Use the --destination-server argument during export to indicate the target server. This option is available for all content-export operations.

    For example, specify the destination server when exporting a content view version:

    $ hammer content-export complete version \
    --content-view="My_Content_View_Name" \
    --destination-server=My_Downstream_Server_1 \
    --organization="My_Organization" \
    --version=1.0
  2. Query export records by listing the exports:

    $ hammer content-export list \
    --organization="My_Organization"

Importing exported content

When synchronizing content by using export and import, import exported content into the downstream orcharhino Server Library environment, content view versions, or individual repositories.

Importing exports in the syncable format

Import syncable exports from an allowed import path on your downstream orcharhino Server into the Library environment.

Prerequisites
Procedure
  • Import the syncable exports into the Library environment of your organization:

    $ hammer content-import library \
    --organization="My_Organization" \
    --path="My_Path_To_Syncable_Export"

Importing into the Library environment

You can import exported Library content into the Library environment of an organization on a downstream orcharhino Server.

Prerequisites
Procedure
  1. Copy the exported files to a subdirectory of /var/lib/pulp/imports on orcharhino Server where you want to import.

  2. Set the ownership of the import directory and its contents to pulp:pulp.

    $ chown -R pulp:pulp /var/lib/pulp/imports/2021-03-02T03-35-24-00-00/
  3. Verify that the ownership is set correctly:

    $ ls -lh /var/lib/pulp/imports/2021-03-02T03-35-24-00-00
    total 68M
    -rw-r--r--. 1 pulp pulp 68M Mar  2 04:29 export-1e25417c-6d09-49d4-b9a5-23df4db3d52a-20210302_0335.tar.gz
    -rw-r--r--. 1 pulp pulp 333 Mar  2 04:29 export-1e25417c-6d09-49d4-b9a5-23df4db3d52a-20210302_0335-toc.json
    -rw-r--r--. 1 pulp pulp 443 Mar  2 04:29 metadata.json
  4. Identify the Organization that you want to import into.

  5. Import the Library content to orcharhino Server:

    $ hammer content-import library \
    --organization="My_Organization" \
    --path=/var/lib/pulp/imports/2021-03-02T03-35-24-00-00/

    You must specify the absolute path as in the example: /var/lib/pulp/imports/2021-03-02T03-35-24-00-00/. Relative paths do not work.

  6. Verify that you imported the Library content by checking the contents of the product and repositories. A new content view called Import-Library is created in the target organization. This content view is used to facilitate the Library content import.

    By default, this content view is not shown in the orcharhino management UI. Import-Library is not meant to be assigned directly to hosts. Instead, assign your hosts to Default Organization View or another content view as you would normally.

    The importing orcharhino Server extracts the /var/lib/pulp/imports directory to /var/lib/pulp/.

  7. Delete the import files after a successful import:

    $ rm -fr /var/lib/pulp/imports/2021-03-02T03-35-24-00-00/

Importing into the Library environment from a web server

You can import exported Library content directly from a web server into the Library environment on a downstream orcharhino Server when exports are in syncable format.

Prerequisites
  • The exported files must be in the syncable format.

  • The exported files must be accessible through HTTP/HTTPS.

  • The user importing the content has the Content Importer role.

Procedure
  1. Identify the Organization that you want to import into.

  2. To import the Library content to orcharhino Server, enter the following command:

    $ hammer content-import library \
    --organization="My_Organization" \
    --path=http://server.example.com/pub/exports/2021-02-25T21-15-22-00-00/

    A new content view called Import-Library is created in the target organization. This content view is used to facilitate the Library content import.

    By default, this content view is not shown in the orcharhino management UI. Import-Library is not meant to be assigned directly to hosts. Instead, assign your hosts to Default Organization View or another content view.

Importing a content view version

You can import an exported content view version to recreate the same content in an organization on a downstream orcharhino Server.

When you import a content view version, it has the same major and minor version numbers and contains the same repositories with the same packages and errata. Custom repositories, products and content views are automatically created if they do not exist in the importing organization.

Prerequisites
Procedure
  1. Copy the exported files to a subdirectory of /var/lib/pulp/imports on orcharhino Server where you want to import.

  2. Set the ownership of the import directory and its contents to pulp:pulp:

    $ chown -R pulp:pulp /var/lib/pulp/imports/2021-02-25T21-15-22-00-00/
  3. Verify that the ownership is set correctly:

    $ ls -lh /var/lib/pulp/imports/2021-02-25T21-15-22-00-00/
  4. Import the content view version to orcharhino Server:

    $ hammer content-import version \
    --organization=My_Organization \
    --path=/var/lib/pulp/imports/2021-02-25T21-15-22-00-00/

    You must specify the absolute path as in the example: /var/lib/pulp/imports/2021-02-25T21-15-22-00-00/. Relative paths do not work.

  5. Verify that you imported the content view version successfully by listing the content view versions for your organization:

    $ hammer content-view version list \
    --organization-id=My_Organization_ID

    The importing orcharhino Server extracts the /var/lib/pulp/imports directory to /var/lib/pulp/.

  6. Delete the import files after a successful import:

    $ rm -fr /var/lib/pulp/imports/2021-02-25T21-15-22-00-00/

Importing a content view version from a web server

You can import an exported content view version directly from a web server when the export is in syncable format and accessible over HTTP/HTTPS.

When you import a content view version, it has the same major and minor version numbers and contains the same repositories with the same packages and errata. Custom repositories, products, and content views are automatically created if they do not exist in the importing organization.

Prerequisites
  • The exported files must be in a syncable format.

  • The exported files must be accessible through HTTP/HTTPS.

  • The user importing the content view version must have the Content Importer role.

Procedure
  • Import the content view version into orcharhino Server:

    $ hammer content-import version \
    --organization=My_Organization \
    --path=http://server.example.com/pub/exports/2021-02-25T21-15-22-00-00/

Importing a repository

You can import an exported repository into an organization on a downstream orcharhino Server to match content from the upstream server.

Prerequisites
Procedure
  1. Copy the exported files to a subdirectory of /var/lib/pulp/imports on orcharhino Server where you want to import.

  2. Set the ownership of the import directory and its contents to pulp:pulp:

    $ chown -R pulp:pulp /var/lib/pulp/imports/2021-03-02T03-35-24-00-00/
  3. Verify that the ownership is set correctly:

    $ ls -lh /var/lib/pulp/imports/2021-03-02T03-35-24-00-00
    total 68M
    -rw-r--r--. 1 pulp pulp 68M Mar  2 04:29 export-1e25417c-6d09-49d4-b9a5-23df4db3d52a-20210302_0335.tar.gz
    -rw-r--r--. 1 pulp pulp 333 Mar  2 04:29 export-1e25417c-6d09-49d4-b9a5-23df4db3d52a-20210302_0335-toc.json
    -rw-r--r--. 1 pulp pulp 443 Mar  2 04:29 metadata.json
  4. Identify the Organization that you want to import into.

  5. Import the repository content into orcharhino Server:

    $ hammer content-import repository \
    --organization="My_Organization" \
    --path=/var/lib/pulp/imports/2021-03-02T03-35-24-00-00/

    You must specify the absolute path as in the example: /var/lib/pulp/imports/2021-03-02T03-35-24-00-00. Relative paths do not work.

  6. Verify that you imported the repository by checking the contents of the product and repository. The importing orcharhino Server extracts the /var/lib/pulp/imports directory to /var/lib/pulp/.

  7. Delete the import files after a successful import:

    $ rm -fr /var/lib/pulp/imports/2021-03-02T03-35-24-00-00/

Importing a repository from a web server

You can import an exported repository directly from a web server when the export is in syncable format and accessible over HTTP/HTTPS.

Prerequisites
  • The exported files must be in a syncable format.

  • The exported files must be accessible through HTTP/HTTPS.

  • The user importing the content has the Content Importer role.

Procedure
  1. Select the organization into which you want to import.

  2. Import the repository to orcharhino Server:

    $ hammer content-import repository \
    --organization="My_Organization" \
    --path=http://server.example.com/pub/exports/2021-02-25T21-15-22-00-00/

Hammer CLI cheat sheet for exporting and importing content

Use these Hammer CLI commands as a quick reference when exporting and importing content between orcharhino Servers.

Table 1. Export
Intent Command

Fully export an Organization’s Library

hammer content-export complete library --organization="My_Organization"

Incrementally export an Organization’s Library (assuming you have exported something previously)

hammer content-export incremental library --organization="My_Organization"

Fully export a content view version

hammer content-export complete version --content-view="My_Content_View" --version=1.0 --organization="My_Organization"

Export a content view version promoted to the Dev Environment

hammer content-export complete version --content-view="My_Content_View" --organization="My_Organization" --lifecycle-environment="Dev"

Export a content view in smaller chunks (2-GB slabs)

hammer content-export complete version --content-view="My_Content_View" --version=1.0 --organization="My_Organization" --chunk-size-gb=2

Incrementally export a content view version (assuming you have exported something previously)

hammer content-export incremental version --content-view="My_Content_View" --version=2.0 --organization="My_Organization"

Fully export a Repository

hammer content-export complete repository --product="My_Product" --name="My_Repository" --organization="My_Organization"

Incrementally export a Repository (assuming you have exported something previously)

hammer content-export incremental repository --product="My_Product" --name="My_Repository" --organization="My_Organization"

List exports

hammer content-export list --content-view="My_Content_View" --organization="My_Organization"

Table 2. Import
Intent Command

Import into an Organization’s Library

hammer content-import library --organization="My_Organization" --path="/var/lib/pulp/imports/My_Exported_Library_Dir"

Import to a content view version

hammer content-import version --organization="My_Organization" --path="/var/lib/pulp/imports/My_Exported_Version_Dir"

Import a Repository

hammer content-import repository --organization="My_Organization" --path="/var/lib/pulp/imports/My_Exported_Repo_Dir"

The text and illustrations on this page are licensed by ATIX AG under a Creative Commons Attribution Share Alike 4.0 International ("CC BY-SA 4.0") license. This page also contains text from the official Foreman documentation which uses the same license ("CC BY-SA 4.0").