写点什么

使用 EC2 Image Builder 实现 OS 映像构建管道自动化

  • 2019-12-12
  • 本文字数:2060 字

    阅读完需:约 7 分钟

使用 EC2 Image Builder 实现 OS 映像构建管道自动化

在我职业生涯的早期,我可以回想起自己担负的为我的开发团队创建和维护操作系统 (OS) 映像的任务。这是一个耗时的过程,有时容易出错,需要我经常手动重新创建和重新快照映像。您一定能够想象,它还涉及大量的手动测试!


如今,客户仍然需要保持其映像最新,他们可以通过手动更新和快照 VM 来保持更新,或者设立构建自动化脚本来维护映像的团队,这两个过程仍然都是费时、资源密集型并且容易出错的。我很高兴地宣布 EC2 Image Builder 现已推出,该服务使使用自动构建管道,可以更轻松快捷地为 Windows Server 和 Amazon Linux 2 构建和维护安全的 OS 映像。由 EC2 Image Builder 创建的映像可以与 Amazon Elastic Compute Cloud (EC2) 和本地资源一起使用,并且可以进行保护和强化以利遵守适用的信息安全法规。AWS 提供了安全强化策略,您可以将其作为出发点,以达到在受管制行业中运营所需的“安全技术实施指南 (STIG)”标准。


您可以为 EC2 Image Builder 配置的管道包括映像配方、基础设施配置、分发和测试设置,以生成结果映像。这包括在新软件更新(包括安全补丁)可用时自动预置映像的能力。通过管道创建新映像后,您可以另外配置要运行的自动测试以验证映像,然后再将其分发到您指定的 AWS 区域。EC2 Image Builder 可以与 EC2 VM Import/Export 一起使用,以多种格式构建映像以供本地使用,包括 VMDK、VHDX 和 OVF。测试时,您可以结合使用 AWS 提供的测试和您自己编写的自定义测试。


让我们来看看如何开始使用 EC2 Image Builder。


创建 OS 映像构建管道


在控制台主页上,单击创建映像管道可以快速开始工作。在这里,我将构建一个管道,该管道将构建自定义的 Amazon Linux 2 映像。第一步是定义配方,其中包括选择要从其开始的源映像,要应用于所创建映像的构建组件以及要运行的测试。


从源映像开始,我将选择 EC2 Image Builder 提供的托管映像。请注意,我还可以选择我创建的或与我共享的其他映像,或者指定自定义 AMI ID。



接下来,我选择要包含在配方中的构建组件,换句话说,就是我想安装到新映像上的软件。在向导中,我可以选择通过单击创建构建组件来创建新的构建组件。构建组件具有名称(和可选描述)、目标操作系统、用于加密组件的可选 AWS Key Management Service (KMS) 密钥以及指定组件自定义步骤集的 YAML 文档。构建组件也可以进行版本控制,因此在自定义要应用于映像的软件方面,我具有很大的灵活性。我可以创建和选择多个构建组件,而不必从一个组件进行所有自定义。


但是对于这篇博文而言,我单击了浏览构建组件并为 Amazon Corretto、Python 3 和 PowerShell Core 选择了一些 Amazon 提供的组件。



配方的最后一步是选择要应用于映像以对其进行验证的测试。与构建组件一样,我可以在向导中创建和指定测试,并且与构建组件一样,我具有定义测试的相同能力。同样,我尽量保持局势简明:单击浏览测试以选择一个亚马逊提供的测试,该测试将成功重启映像(请注意,我也可以选择多个测试)。



这样就完成了我的配方,因此我单击下一步并开始定义管道。首先,我给管道命名,然后选择一个AWS Identity and Access Management (IAM) 角色与 EC2 实例关联以构建新映像。EC2 Image Builder 将使用此角色在我的账户中创建 Amazon Elastic Compute Cloud (EC2) 实例,以执行自定义和测试步骤。管道构建可以手动执行,也可以选择按时间表运行。我可以使用简单的日/周/月时间段和每天时间选择器来指定时间表,也可以使用 CRON 表达式。



我选择了具有足够权限的托管 IAM 策略 (EC2InstanceProfileForImageBuilder),以使用常见的 AWS 提供的构建组件并运行测试。当您开始自己使用 Image Builder 时,您将需要设置一个角色,该角色具有足够的权限来执行自定义、运行测试以及将问题排查日志写入 S3。作为设置适当权限的起点,我建议您将 AmazonSSMManagedInstanceCore IAM 策略附加到实例附带的 IAM 角色上。


最后,对于管道,我可以选择指定一些将代表我启动的基础设施的设置,例如,自定义映像时使用的实例类型的大小,以及可以将通知转发到的 Amazon Simple Notification Service (SNS) 主题。如果需要,我还可以控制与 Amazon Virtual Private Cloud 相关的设置。



如果我正在构建的映像的操作系统与许可证关联,则可以指定下一个(或即时创建新的许可证配置),以及我的新映像的名称以及新映像将共享到的 AWS 区域(无论共有还是私有)。



点击查看,我可以查看所有设置,最后点击创建管道以完成该过程。



即使我要求所配置的管道每天在世界标准时间 06:00 运行,我仍然可以随时运行它。选择管道,单击操作,然后是运行管道


构建完成后,AMI 将随时可以从 Amazon EC2 控制台启动!


要是我早年在工作中就有了这个工具,我可以节省多少的时间和精力! EC2 Image Builder 是免费提供给客户的,并且可以在所有商业 AWS 区域中使用。您仅需为用于创建、存储和共享映像的基础 AWS 资源付费。


本文转载自 AWS 技术博客。


原文链接:https://amazonaws-china.com/cn/blogs/china/automate-os-image-build-pipelines-with-ec2-image-builder/


2019-12-12 14:25676

评论

发布
暂无评论
发现更多内容

Git【入门】这一篇就够了

JavaPub

spring

LeetCode | 7. Merge Two Sorted Lists 合并两个有序列表

Puran

Python C# 算法 LeetCode

分布式系统架构设计 - 一致性hash算法及其改进

常平

分布式 架构设计

如何写好一封简历?

石云升

职场 简历优化 职场成长 简历

第一个Spring程序(代码篇)

JavaPub

spring

架构师训练营 第 5 周总结

Lingjun

极客大学架构师训练营

分布式系统架构学习总结

qihuajun

一文搞懂分布式消息中间件设计

小隐乐乐

消息队列

总结

Mr.Monkey

Python设计模式 单例模式

早睡蟒

Python 面向对象 设计模式 单例模式

ARTS Week6

丽子

分布式系统架构设计 - 从CAP到PACELC

常平

架构 分布式

分布式缓存架构作业

qihuajun

架构师训练营作业-20200705

caibird1984

极客大学架构师训练营

程序人生 | 春风得意马蹄疾,一日看尽长安花

YourBatman

Java 程序员 程序人生

架构师训练营总结-20200705

caibird1984

极客大学架构师训练营

第五周作业

赵龙

一篇告诉你什么是Spring

JavaPub

spring

极客大学架构师训练营 系统架构 消息队列 数据库备份 第10课 听课总结

John(易筋)

负载均衡 极客时间 极客大学 极客大学架构师训练营 消息队列

唯一路径的动态规划解法,阿里巴巴架构演化路径 John 易筋 ARTS 打卡 Week 07

John(易筋)

动态规划 ARTS 打卡计划 系统架构演化 唯一路径

从“金 木 水 火 土”到分布式系统架构设计

常平

分布式 架构设计

ARTS打卡(2020.06.29-2020.07.04)

小王同学

ARTS 打卡计划

80%会问到的18个Dubbo面试题,快来看看你都掌握了吗

小新

Java 程序员 架构 面试 dubbo

游戏夜读 | 简单认识一下爬虫

game1night

架构师训练营第五周 - 作业

Eric

极客大学架构师训练营

架构第五周 - 学习总结

J.Smile

极客大学架构师训练营

在Windows上使用IIS来托管站点

Puran

windows IIS Server

ARTS|Week 6 合并有序列表、团队、MIME类型和IIS

Puran

LeetCode ARTS 打卡计划

一致性Hash算法——架构师训练营第5周

架构 极客大学架构师训练营 一致性Hash算法 第5周作业 负载均衡算法

第五周学习总结

赵龙

第五周作业

秦宝齐

学习

使用 EC2 Image Builder 实现 OS 映像构建管道自动化_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章