9.7. 导出存储库

您可以从 Satellite 服务器在机构的库环境中导出存储库的内容。您可以使用此存档文件在另一个 Satellite 服务器或其他 Satellite 服务器机构中创建相同的存储库。

您可以从 Satellite 服务器导出以下内容:

  • RPM 软件仓库
  • Kickstart 软件仓库
  • Ansible 存储库
  • 文件仓库

您无法从 Satellite 服务器导出 Docker 内容。

导出包含以下数据:

  • 包含存储库元数据的两个 JSON 文件。
  • 一个或多个存档文件,其中包含来自机构的库环境的存储库的内容。

您需要所有文件 tar.gz,toc.jsonmetadata.json 才能导入。

先决条件

要导出存储库的内容,请确保要从中导出的 Satellite 服务器,满足以下条件:

  • 确保导出目录有足够的可用空间来容纳导出。
  • 确保 /var/lib/pulp/exports 目录有足够的可用空间,相当于为导出过程中创建的临时文件导出库大小。
  • 确保您导出的库生命周期阶段中将下载策略设置为 Immediate。如需更多信息,请参阅 第 6.7 节 “下载策略概述”
  • 确保您同步了导出至所需日期的产品。

导出存储库

  1. 使用要导出的存储库名称或 ID。

    # hammer content-export complete repository \
     --organization="My_Organization" \
     --product="My_Product" \
     --name="My_Repository"
  2. 可选:验证导出的归档是否位于导出目录中:

    # ls -lh /var/lib/pulp/exports/My_Organization/Export-My_Repository/1.0/2021-03-02T03-35-24-00-00
    total 68M
    -rw-r--r--. 1 pulp pulp 68M Mar  2 03:35 export-1e25417c-6d09-49d4-b9a5-23df4db3d52a-20210302_0335.tar.gz
    -rw-r--r--. 1 pulp pulp 333 Mar  2 03:35 export-1e25417c-6d09-49d4-b9a5-23df4db3d52a-20210302_0335-toc.json
    -rw-r--r--. 1 root root 443 Mar  2 03:35 metadata.json

使用 Chunking 导出存储库

在很多情况下,导出的内容存档大小可能有多个 GB。如果要将其分成较小的大小的块,您可以在 export 命令中使用 --chunk-size-gb 参数,并使用整数值以 GB 为单位限制大小。

  1. 将内容导出到有限大小的归档块,如 2 GB:

    # hammer content-export complete repository \
    --chunk-size-gb=2 \
    --organization="My_Organization" \
    --product="My_Product" \
    --name="My_Repository"
    
    Generated /var/lib/pulp/exports/My_Organization/Export-My_Repository/1.0/2021-03-02T03-35-24-00-00/metadata.json
  2. 可选:查看导出的数据:

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