2.4. 定义文件内容的分类


使用 Ansible Builder 构建自动化执行环境时需要定义文件,因为它指定了自动化执行环境容器镜像中包含的内容。

以下小节细分了定义文件的不同部分。

2.4.1. 构建参数和基础镜像

定义文件的 build_arg_defaults 部分是一个字典,其键可为 Ansible Builder 的参数提供默认值。下表列出了 build_arg_defaults 中可以使用的值:

Expand
描述

ANSIBLE_GALAXY_CLI_COLLECTION_OPTS

  • 允许用户传递 –pre 标记来启用预发布集合的安装。
  • -c 与将 verify_ssl 设置为 false 相同

EE_BASE_IMAGE

指定自动化执行环境的父镜像,启用基于已存在的镜像构建的新镜像

EE_BUILDER_IMAGE

指定用于编译类型任务的镜像

build_arg_defaults 中指定的值将硬编码到 Containerfile 中,因此这些值将在手动调用 podman build 时保留。

注意

如果在 CLI --build-arg 标志中指定相同的变量,CLI 值将具有更高的优先级。

2.4.2. Ansible 配置文件路径

当使用 ansible.cfg 文件将私有帐户的令牌和其他设置传递给自动化中心服务器时,请将配置文件路径(相对于定义文件所在的位置)作为字符串,在构建的初始阶段将其启用为构建参数。

ansible.cfg 文件的格式应当类似以下示例:

例 2.2. ansible.cfg 文件

[galaxy]
server_list = automation_hub

[galaxy_server.automation_hub]
url=https://cloud.redhat.com/api/automation-hub/
auth_url=https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token
token=my_ah_token
Copy to Clipboard Toggle word wrap

有关如何从自动化中心下载集合的更多信息,请参阅相关的 Ansible 文档页面。

2.4.3. 依赖项

2.4.3.1. Galaxy

galaxy 条目指向 ansible-galaxy collection install -r …​ 命令创建。

条目 requirements.yml 可以是对于自动化执行环境定义的文件夹目录的相对路径,也可以是绝对路径。

requirements.yml 文件的内容可能类似如下:

例 2.3. Galaxy 的 requirements.yml 文件

collections:
  - geerlingguy.java
  - kubernetes.core
Copy to Clipboard Toggle word wrap

2.4.3.2. Python

定义文件中的 python 条目指向 pip install -r …​ 命令所需的文件。

条目 requirements.txt 是一个文件,它会在集合已列出的 Python 依赖项之上安装额外的 Python 要求。它可以是对于自动化执行环境定义的文件夹目录的相对路径,也可以是绝对路径。requirements.txt 文件的内容应该类似以下示例,类似于 pip freeze 命令的标准输出:

例 2.4. Python 的 requirements.txt 文件

boto>=2.49.0
botocore>=1.12.249
pytz
python-dateutil>=2.7.0
awxkit
packaging
requests>=2.4.2
xmltodict
azure-cli-core==2.11.1
python_version >= '2.7'
collection community.vmware
google-auth
openshift>=0.6.2
requests-oauthlib
openstacksdk>=0.13
ovirt-engine-sdk-python>=4.4.10
Copy to Clipboard Toggle word wrap

2.4.3.3. System

定义中的 system 条目指向一个 bindep 要求文件,该文件将安装集合中已存在的系统级依赖项。它可以是对于自动化执行环境定义的文件夹目录的相对路径,也可以是绝对路径。

要演示这一点,以下是 bindep.txt 文件示例,该文件将 libxml2subversion 软件包添加到容器中:

例 2.5. bindep.txt 文件

libxml2-devel [platform:rpm]
subversion [platform:rpm]
Copy to Clipboard Toggle word wrap

2.4.4. 额外的自定义构建步骤

prependappend 命令可以在 additional_build_steps 部分中指定。这些将添加命令到 Containerfile,该文件将在执行主要构建步骤之前或之后运行。

additional_build_steps 的语法必须是以下之一:

  • 一个多行的字符串

    例 2.6. 一个多行的字符串条目

    RUN whoami
    RUN cat /etc/os-release
    Copy to Clipboard Toggle word wrap
  • 一个列表

    例 2.7. 一个列表条目

    - RUN echo This is a post-install command!
    - RUN ls -la /etc
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat