4.2. 自定义现有执行环境镜像


Ansible Controller 附带三个默认执行环境:

  • Ansible 2.9 - 不安装 Controller 模块以外的集合
  • minimal - 包含最新的 Ansible 2.12 版本以及 Ansible Runner,但不包含集合或其他额外内容
  • EE Supported - 包含所有红帽支持的内容

虽然这些环境涵盖了许多自动化用例,但您可以添加额外的项目来自定义这些容器,以满足您的特定需求。以下流程将 kubernetes.core 集合添加到 ee-minimal 默认镜像中:

流程

  1. 通过 Podman 登录到 registry.redhat.io

    $ podman login -u="[username]" -p="[token/hash]" registry.redhat.io
    Copy to Clipboard Toggle word wrap
  2. 拉取自动化执行环境镜像

    podman pull registry.redhat.io/ansible-automation-platform-21/ee-minimal-rhel8:latest
    Copy to Clipboard Toggle word wrap
  3. 配置 Ansible Builder 文件,以指定要添加到基于 ee-minimal 的新执行环境镜像的任何额外内容。

    1. 例如,要将来自 Galaxy 的 Kubernetes Core Collection 添加到镜像中,请填写 requirements.yml 文件,如下所示:

      collections:
        - kubernetes.core
      Copy to Clipboard Toggle word wrap
    2. 如需有关定义文件及其内容的更多信息,请参阅定义文件分类部分
  4. 在执行环境定义文件中,通过 EE_BASE_IMAGE 字段指定到 originalee-minimal 容器的文件路径。这样,您的最终 execute-environment.yml 文件将类似如下:

    例 4.2. 自定义 execution-environment.yml 文件

    version: 1
    
    build_arg_defaults:
      EE_BASE_IMAGE: 'example.registry.com/my-base-ee'
    
    dependencies:
      galaxy: requirements.yml
    Copy to Clipboard Toggle word wrap
    注意

    由于本例使用 kubernetes.core 的社区版本,而不是来自自动化中心的认证集合,因此我们不需要创建 ansible.cfg,也不在定义文件中引用。

  5. 使用以下命令构建新执行环境镜像:

    $ ansible-builder build -t registry.redhat.io/[username]/new-ee
    Copy to Clipboard Toggle word wrap

    其中 [username] 指定您的用户名,new-ee 指定新容器镜像的名称。

    1. 使用 podman images 命令确认您的新容器镜像在该列表中:

      例 4.3. 使用镜像 new-eepodman images 命令的输出

      REPOSITORY          TAG     IMAGE ID      CREATED        SIZE
      localhost/new-ee    latest  f5509587efbb  3 minutes ago  769 MB
      Copy to Clipboard Toggle word wrap
  6. 通过 Ansible Navigator 验证新创建的执行环境镜像
  7. 标记在自动化中心中使用的镜像:

    $ podman tag registry.redhat.io/_[username]_/_new-ee_ [automation-hub-IP-address]/_[username]_/_new-ee_
    Copy to Clipboard Toggle word wrap
  8. 使用 Podman 登录到您的自动化 hub:

    注意

    您必须具有 Automation hub 的 admin 或适当的容器存储库权限才能推送容器。如需更多信息,请参阅 Red Hat Ansible Automation Platform 文档中的在私有自动化中心管理容器

    $ podman login -u="[username]" -p="[token/hash]" [automation-hub-IP-address]
    Copy to Clipboard Toggle word wrap
  9. 将镜像推送到自动化 hub 中的容器 registry 中:

    $ podman push [automation-hub-IP-address]/_[username]_/_new-ee_
    Copy to Clipboard Toggle word wrap
  10. 将新镜像拉取(pull)到自动化控制器实例中:

    1. 进入自动化控制器。
    2. 在侧面导航栏中,点 Administration Execution Environments
    3. 点击 Add
    4. 输入适当的信息,然后点 Save 以拉取新镜像。

      注意

      如果您的自动化中心实例受密码或令牌保护,请确保设置了适当的容器 registry 凭证。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat