使用Ansible Builder安装tar.gz格式的集合
首先
我认为在使用ansible-builder创建自定义执行环境容器镜像时,通常会将集合包含在依赖关系中。
在这种情况下,主要是通过ansible-galaxy安装集合,但如果在没有互联网访问的环境下,可能需要以tar.gz格式进行安装。
本文将介绍在ansible-builder中进行镜像构建时,安装tar.gz格式的集合的方法。
从Ansible Galaxy下载tarball。
我将访问Ansible galaxy,并下载所需收藏的tarball。
可以从名为”Download tarball”的链接中下载。
将ansible-builder的版本升级到3.
在创建镜像时,如果要安装 tar.gz 格式的集合包,您需要在 execution-environment.yml 文件中使用 additional_build_files 选项,但是为了使用该选项,您需要将 ansible-builder 版本升级到 3。
升级程序步骤
pip install --upgrade ansible-navigator
pip install --upgrade ansible-builder
请确认使用 “ansible-builder –version” 命令时显示的版本号为3.0.0及以上。
要将 ansible-builder 版本升级到3,您需要先升级 ansible-navigator 版本以满足依赖关系要求。
写execution-environment.yml文件
以下是版本3的execution-environment.yml的示例。
---
version: 3
build_arg_defaults:
ANSIBLE_GALAXY_CLI_COLLECTION_OPTS: '--pre'
dependencies:
ansible_core:
package_pip: ansible-core==2.14.4
ansible_runner:
package_pip: ansible-runner
galaxy: requirements.yml
python:
- six
- psutil
system: bindep.txt
images:
base_image:
name: registry.redhat.io/ansible-automation-platform-21/ee-minimal-rhel8:latest
additional_build_files:
- src: files/ansible.cfg
dest: configs
additional_build_steps:
prepend_galaxy:
- ADD _build/configs/ansible.cfg ~/.ansible.cfg
prepend_final: |
RUN whoami
RUN cat /etc/os-release
append_final:
- RUN echo This is a post-install command!
- RUN ls -la /etc
假设存在以下目录结构。
.
├── collections
│ └── sample-collection-x.y.z.tar.gz
├── execution-environment.yml
└── requirements.yml
在 “additional_build_files” 选项中,添加以下内容。
additional_build_files:
- src: collections/sample-collection-x.y.z.tar.gz
dest: mycollections
dest似乎指的是在构建时创建的_build目录下方。
将以下内容写入requirements.yml文件中。
collections:
- source: mycollections/sample-collection-x.y.z.tar.gz
type: file
执行构建。
按照通常的流程来执行编译。
ansible-builder build --tags sample-image:x.y
请参照以下内容,用汉语进行准确表述,只需提供一种选择。
-
- Execution Environment Definition
- ansible-builder and local collection (GitHub Issue)