4.7. 使用 bootc-image-builder 创建 AMI 镜像并将其上传到 AWS
从 bootc 镜像创建 Amazon Machine Image (AMI),并使用它来启动 Amazon Web Services (AWS) Amazon Elastic Compute Cloud (EC2)实例。
先决条件
- 您已在主机机器上安装了 Podman。
-
AWS 帐户中有一个现有的
AWS S3
存储桶。 -
您有运行
bootc-image-builder
工具的 root 访问权限,并在--privileged
模式下运行容器,以构建镜像。 -
您已在帐户中配置了
vmimport
服务角色,来将 AMI 导入到 AWS 帐户中。
流程
从 bootc 镜像创建磁盘镜像。
- 在 Containerfile 中配置用户详情。确保为它分配了 sudo 访问权限。
- 使用 Containerfile 配置中的用户构建一个自定义操作系统镜像。它会创建一个具有无密码 sudo 访问权限的默认用户。
可选:使用
cloud-init
配置机器镜像。请参阅 用户和组配置 - 使用 cloud-init 注入用户和 SSH 密钥。以下是一个示例:FROM registry.redhat.io/rhel10/rhel-bootc:latest RUN dnf -y install cloud-init && \ ln -s ../cloud-init.target /usr/lib/systemd/system/default.target.wants && \ rm -rf /var/{cache,log} /var/lib/{dnf,rhsm}
FROM registry.redhat.io/rhel10/rhel-bootc:latest RUN dnf -y install cloud-init && \ ln -s ../cloud-init.target /usr/lib/systemd/system/default.target.wants && \ rm -rf /var/{cache,log} /var/lib/{dnf,rhsm}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您还可以使用
cloud-init
,使用实例元数据添加用户和其他配置。构建 bootc 镜像。例如,要将镜像部署到
x86_64
AWS 机器,请使用以下命令:podman build -t quay.io/<namespace>/<image>:<tag> . podman push quay.io/<namespace>/<image>:<tag> .
$ podman build -t quay.io/<namespace>/<image>:<tag> . $ podman push quay.io/<namespace>/<image>:<tag> .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
bootc-image-builder
工具从 bootc 容器镜像创建公共 AMI 镜像。该镜像必须可从 registry 访问,如registry.redhat.io/rhel10/bootc-image-builder:latest
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意以下标记必须一起指定。如果没有指定任何标记,AMI 被导出到 output 目录中。
-
--AWS-ami-name
- AWS 中 AMI 镜像的名称 -
--AWS-bucket
- 创建 AMI 时中间存储的目标 S3 存储桶名称 --AWS-region
- 用于AWS 上传的目标区域bootc-image-builder
工具构建 AMI 镜像,并使用您的AWS 凭证将其上传到 AWS S3 存储桶
,以便在构建 AMI 镜像后推送和注册 AMI 镜像。
-
后续步骤
- 您可以部署镜像。请参阅使用 AMI 磁盘镜像将容器镜像部署到 AWS。
您可以对镜像进行更新,并将更改推送到注册中心。请参阅管理 RHEL bootc 镜像。
- 如果您在配置 AWS 镜像需求时遇到任何问题,请参阅以下文档
- AWS IAM 帐户管理器
- 使用 AWS CLI 的高级(s3)命令。
- S3 存储桶.
- 地区和区域.
- 在 AWS 上启动自定义 RHEL 镜像。
有关用户、组、SSH 密钥和 secret 的详情,请参阅 在 RHEL 的镜像模式中管理用户、组、SSH 密钥和 secret。
其他资源