3.3. 填充私有自动化中(automation hub)容器 registry
默认情况下,私有自动化中心不包括自动化执行环境。要填充容器 registry,您必须将执行环境推送到其中。
您必须遵循特定的工作流来填充私有自动化中心远程 registry:
- 从红帽生态系统目录(registry.redhat.io)拉取自动化执行环境
- 标记它们
- 将其推送到私有自动化中心远程 registry
最初,镜像清单和文件系统 Blob 都直接由 registry.redhat.io
和 registry.access.redhat.com
提供。从 2023 年 5 月 1 日起,文件系统 Blob 由 quay.io
提供。
- 确保 Table 6.4 中列出的 网络端口和协议。执行环境(EE) 可用于避免拉取容器镜像的问题。
对任何特别启用到 registry.redhat.io
或 registry.access.redhat.com
的出站连接进行此更改。
在配置防火墙规则时使用主机名而不是 IP 地址。
完成此更改后,您可以继续从 registry.redhat.io
和 registry.access.redhat.com
拉取执行环境。您不需要 quay.io
登录,或以任何方式直接与 quay.io
registry 交互,以继续拉取红帽容器镜像。
3.3.1. 拉取在自动化中心中使用的执行环境
在将执行环境推送到私有自动化中心之前,您必须首先从现有 registry 中拉取它们并标记它们以供使用。以下示例详细介绍了如何从红帽生态系统目录(registry.redhat.io)拉取执行环境。
先决条件
- 有从 registry.redhat.io 中拉取自动化执行环境的权限。
流程
使用您的 registry.redhat.io 凭证登录到 Podman:
$ podman login registry.redhat.io
- 输入您的用户名和密码。
拉取执行环境:
$ podman pull registry.redhat.io/<ee_name>:<tag>
验证
要验证您最近拉取的执行环境是否包含在列表中,请执行以下步骤:
列出本地存储中的镜像:
$ podman images
- 检查执行环境名称,并验证该标签是否正确。
其他资源
- 有关注册和获取执行环境的信息,请参阅 Red Hat Ecosystem Catalog Help。
3.3.2. 标记在自动化中心中使用的执行环境
从 registry 中拉取执行环境后,标记它们以便在私有自动化中心远程 registry 中使用。
前提条件
- 您已从外部 registry 拉取执行环境。
- 有自动化中心实例的 FQDN 或 IP 地址。
流程
使用自动化中心容器存储库标记本地执行环境:
$ podman tag registry.redhat.io/<ee_name>:<tag> <automation_hub_hostname>/<ee_name>
验证
列出本地存储中的镜像:
$ podman images
- 验证您最近使用自动化中心信息标记的执行环境是否包含在列表中。
3.3.3. 将执行环境推送到私有自动化中心
您可以将标记的执行环境推送到私有自动化中心,以创建新容器并填充远程 registry。
前提条件
- 有创建新容器的权限。
- 有自动化中心实例的 FQDN 或 IP 地址。
流程
使用您的自动化中心位置和凭证登录到 Podman:
$ podman login -u=<username> -p=<password> <automation_hub_url>
警告当您登录时,让 Podman 提示您输入密码。使用您的用户名同时输入密码,可以将您的密码公开给 shell 历史记录。
将执行环境推送到自动化中心远程 registry:
$ podman push <automation_hub_url>/<ee_name>
故障排除
push
操作会在上传期间重新编译镜像层,无法保证可重复生成,依赖于客户端实施。这可能会导致镜像层摘要的变化,并导致推送操作失败,Error: Copying this image requires changing layer representation, which is not possible (image is signed or the destination specifies a digest)
。
验证
- 登录到您的 Ansible Automation Platform。
-
导航到
。 - 在 container 存储库列表中找到容器。