2.4. 定义文件内容的分类
使用 Ansible Builder 构建自动化执行环境时需要定义文件,因为它指定了自动化执行环境容器镜像中包含的内容。
以下小节细分了定义文件的不同部分。
2.4.1. 构建参数和基础镜像 复制链接链接已复制到粘贴板!
定义文件的 build_arg_defaults
部分是一个字典,其键可为 Ansible Builder 的参数提供默认值。下表列出了 build_arg_defaults
中可以使用的值:
值 | 描述 |
---|---|
|
|
| 指定自动化执行环境的父镜像,启用基于已存在的镜像构建的新镜像 |
| 指定用于编译类型任务的镜像 |
build_arg_defaults
中指定的值将硬编码到 Containerfile
中,因此这些值将在手动调用 podman build
时保留。
如果在 CLI --build-arg
标志中指定相同的变量,CLI 值将具有更高的优先级。
2.4.2. Ansible 配置文件路径 复制链接链接已复制到粘贴板!
当使用 ansible.cfg
文件将私有帐户的令牌和其他设置传递给自动化中心服务器时,请将配置文件路径(相对于定义文件所在的位置)作为字符串,在构建的初始阶段将其启用为构建参数。
ansible.cfg
文件的格式应当类似以下示例:
例 2.2. ansible.cfg
文件
有关如何从自动化中心下载集合的更多信息,请参阅相关的 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
collections:
- geerlingguy.java
- kubernetes.core
2.4.3.2. Python 复制链接链接已复制到粘贴板!
定义文件中的 python
条目指向 pip install -r …
命令所需的文件。
条目 requirements.txt
是一个文件,它会在集合已列出的 Python 依赖项之上安装额外的 Python 要求。它可以是对于自动化执行环境定义的文件夹目录的相对路径,也可以是绝对路径。requirements.txt
文件的内容应该类似以下示例,类似于 pip freeze
命令的标准输出:
例 2.4. Python 的 requirements.txt
文件
2.4.3.3. System 复制链接链接已复制到粘贴板!
定义中的 system
条目指向一个 bindep 要求文件,该文件将安装集合中已存在的系统级依赖项。它可以是对于自动化执行环境定义的文件夹目录的相对路径,也可以是绝对路径。
要演示这一点,以下是 bindep.txt
文件示例,该文件将 libxml2
和 subversion
软件包添加到容器中:
例 2.5. bindep.txt
文件
libxml2-devel [platform:rpm] subversion [platform:rpm]
libxml2-devel [platform:rpm]
subversion [platform:rpm]
2.4.4. 额外的自定义构建步骤 复制链接链接已复制到粘贴板!
prepend
和 append
命令可以在 additional_build_steps
部分中指定。这些将添加命令到 Containerfile
,该文件将在执行主要构建步骤之前或之后运行。
additional_build_steps
的语法必须是以下之一:
一个多行的字符串
例 2.6. 一个多行的字符串条目
RUN whoami RUN cat /etc/os-release
RUN whoami RUN cat /etc/os-release
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一个列表
例 2.7. 一个列表条目
- RUN echo This is a post-install command! - RUN ls -la /etc
- RUN echo This is a post-install command! - RUN ls -la /etc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow