第 3 章 发布自动化执行环境


3.1. 自定义现有自动化执行环境镜像

Ansible Controller 包含三个默认执行环境:

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

虽然这些环境涵盖了许多自动化用例,但您可以添加额外的项目来自定义这些容器,以满足您的特定需求。以下流程将 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-22/ee-minimal-rhel8:latest
    Copy to Clipboard Toggle word wrap
  3. 配置 Ansible Builder 文件,以指定所需的基础镜像以及添加到新执行环境镜像的任何其他内容。

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

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

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

    version: 1
    
    build_arg_defaults:
      EE_BASE_IMAGE: 'registry.redhat.io/ansible-automation-platform-22/ee-minimal-rhel8:latest'
    
    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 指定新容器镜像的名称。

注意

如果您在构建中没有使用 -t,则创建名为 ansible-execution-env' 的镜像,并加载到本地容器 registry 中。

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

    例 3.2. 使用镜像 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
    1. 验证是否安装了集合:

      $ podman run registry.redhat.io/[username]/new-ee ansible-doc -l kubernetes.core
      Copy to Clipboard Toggle word wrap
    2. 标记在自动化中心中使用的镜像:

      $ podman tag registry.redhat.io/[username]/new-ee [automation-hub-IP-address]/[username]/new-ee
      Copy to Clipboard Toggle word wrap
    3. 使用 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
    4. 将镜像推送到自动化 hub 中的容器 registry 中:

      $ podman push [automation-hub-IP-address]/[username]/new-ee
      Copy to Clipboard Toggle word wrap
    5. 将新镜像拉取(pull)到自动化控制器实例中:
  2. 进入自动化控制器。
  3. 在侧面导航栏中,点 Administration Execution Environments
  4. 点击 Add
  5. 输入适当的信息,然后点 Save 以拉取新镜像。

    注意

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat