Arch Linux AMIs for Amazon Web Services

来自 Arch Linux 中文维基

开放社区的 Arch AMI[编辑 | 编辑源代码]

注意: Arch Linux 目前暂不提供 Amazon Machine Images 的官方支持。以下 AMI 由社区创建。

AMI[编辑 | 编辑源代码]

可以在这里找到 Arch Linux AMI:http://arch-ami-list.drzee.net/

AMI 每月构建两次(一号及15号的 2:00am UTC),并在所有默认启用的地区中提供(参见 地域列表)。如果需要在目前不支持的地域使用,可以手动将 AMI 复制到目标区域。

这些 AMI 属于 EBS HVM AMI,并提供了两个内核选项:

两个内核都已在多种 EC2 实例上经过测试(t2,t3,t3a,m/r/c5,m/r/c6 以及带有多 GPU 等高级硬件的实例上)并能正常启动。

未构建使用 LTS 内核的 AMI。

使用 REST API 获取 AMI 列表[编辑 | 编辑源代码]

可以使用如下 REST API 获取 JSON 格式的可用 AMI 列表:

注意: API 终端更改前不会提前通知更改。

初次运行[编辑 | 编辑源代码]

启动了 AMI 后,建议/必须执行以下步骤以初始化 pacman 并选择最快的软件源:

# pacman-key --init
# pacman-key --populate
# reflector --country "ISO 3166-1 Alpha-2 Country Code" --protocol https,http --score 20 --sort rate --save /etc/pacman.d/mirrorlist
# pacman -Syu

Reflector 包已随 AMI 附带。

构建流程[编辑 | 编辑源代码]

注意: 该部分简单介绍了 AMI 是如何构建的。

整个构建流程位于 AWS 上,并完全自动化进行。

构建流程由 AWS Step Function 控制,并随一个 Amazon EventBridge 定时事件周期运行。

Step function 负责启动构建,在更复杂的功能上结合使用了一系列本地调用及 AWS Lambda 函数来达成。

新的 AMI 构建流程为:使用旧的 AMI 启动一台 EC2 实例作为 工作/构建机器,该实例上带了一套特殊的构建脚本,其内容很大程度上参考了以下链接,并做了一些增改:http://mathcom.com/arch.aws.ami.html 。因为我们不需要独立防火墙,所以跳过了步骤 7.4 。

完成 AMI 构建后,新的 AMI 会在新的 EC2 实例上进行 测试启动 以验证其可以正常启动。成功后,AMI 将会被分发到各个地域,并在一个 DynamoDB 数据库上进行记录。数据库内容可以由 REST API 进行调取。旧 AMI 将从各个地域及 DynamoDB 数据库中删除。

致谢[编辑 | 编辑源代码]

感谢来自 UplinkLabs 的 Steven 协助解析构建流程,并测试了镜像的早期质量。同时感谢 Mathcom指南,帮助加快了构建流程的基础搭建。

你可以发送评论和建议(不保证会被查看)到:arch-ami 'at' drzee.net

未来工作[编辑 | 编辑源代码]

  • 在默认 Arch Linux 源中加入官方的 EC2/云平台优化内核
  • 在默认 Arch Linux 源中加入 AWS CLI v2(v1 已在源内,但未来可能会停止更新)

构建 Arch AMI[编辑 | 编辑源代码]

你也可以自己构建 Arch Linux AMI,可以参考下列指南:

来自 Uplink Labs 的 AMI 镜像[编辑 | 编辑源代码]

本文内容或本节内容已经过期。

原因: Uplink Labs 已不再维护下列 AMI (在Talk:Arch Linux AMIs for Amazon Web Services讨论)

Uplink Labs 每月约构建两次新镜像。镜像在数个地域提供,并包含了下列配置:

  • ebs hvm x86_64 lts
  • s3 hvm x86_64 lts
  • ebs hvm x86_64 stable
  • s3 hvm x86_64 stable

AMI 的链接及更多附加信息可参考:https://www.uplinklabs.net/projects/arch-linux-on-ec2/