要使用Bottlerocket的ECS变体连接到ECS群集,可以提供以下用户数据:

[settings.ecs]

cluster = “Your cluster name here”

自定义编译Bottlerocket

除了使用AWS提供的Bottlerocket AMI外,还可以使用自己的更改生成定制的Bottlerocket构建。

作为前提步骤,首先创建一个Rust开发环境。建议使用安装最新的稳定Rust版本。要组织构建任务,要使用cargo-make和cargo-deny:

cargo install cargo-make

cargo install cargo-deny --version 0.6.2

Bottlerocket使用Docker来协调打包和映像构建。建议使用Docker 19.03或更高版本。需要安装Docker并以您的用户帐户运行,以便能够访问Docker API。通常可以通过将用户帐户添加到docker组来启用此功能。

要生成映像,请在更改源代码后运行:

cargo make

所有软件包将依次构建,然后编译目录中的img文件build。

接下来,要注册在Amazon EC2上使用的Bottlerocket AMI,需要设置aws-cli并运行:

cargo make ami

开源社区

Bottlerocket已经完全开源,以使用户能够对用于运行其基础架构的操作系统进行自定义(例如,与自定义协调器/内核/容器运行时集成),将其提交上游并生成自定义版本。所有设计文档,代码,构建工具,测试和文档都将托管在GitHub上。使用GitHub的错误和功能跟踪系统进行项目管理。支持可以使用标准GitHub工作流程查看并为Bottlerocket源代码做贡献。构建,发行和测试基础结构的可用性使生成包含其更改的自定义构建变得容易。ISV合作伙伴可以在客户更新到最新版本的Bottlerocket之前快速验证其软件。

Bottlerocket包括标准的开放源代码组件,例如Linux内核,容器化容器运行时等。特定于Bottlerocket的附加项着重于可靠的更新以及基于API的机制来进行配置更改和触发更新/回滚。可以选择根据Apache 2.0许可证或MIT许可证来许可Bottlerocket代码。诸如Linux内核之类的底层第三方代码仍受其原始许可证的约束。如果修改Bottlerocket,则可以根据策略准则使用“Bottlerocket Remix”来引用构建。