在与云无关的庄园中构建自定义镜像(不仅仅是拉取预构建镜像)

Building out custom images (not just pulling a prebuilt image) in a cloud agnostic manor

我需要能够使用 {some_tool} 和 Terraform 构建我自己的图像。我一直在研究为此使用加壳器,但在我看来它只是拉出一个预构建的 AMI 并对其进行配置。

基本上,我需要构建一个 windows 或 Linux OS 映像,该映像将在任何云(AWS、VMWARE、OCI、Google, 无论何时).

正在寻找可以使用这种方式的工具。另外,我不确定 Terraform 在我看来 Terraform 具有完全相同的内置功能。

谢谢大家:)

Hashcorp 的 Packer 是这方面的完美工具。我们构建各种机器映像并将它们部署到 AWS。基本上,packer 在选定的提供程序中启动一个实例(使用提供的基础映像),按照你的提供程序中提到的那样安装 dependencies/requirements 并从中创建最终映像。

因此,要启动该实例,它需要一个基础映像来启动。因此,您提到的问题根本不是问题,而是工具的工作方式。希望对你有帮助。

it seems to me that it just pulls a prebuilt AMI and configures it.

您可以使用 amazon-ebssurrogateamazon-chroot 构建器或使用任何本地构建器和 amazon-import post-处理器从头构建 AMI,但所有这些选项需要对 AWS 上 运行 和 OS 的先决条件以及如何从头开始自动安装它有很多了解。

Basically, I need to build a windows or Linux OS image that will build then deploy with Terraform on any cloud (AWS, VMWARE, OCI, Google, where ever).

不存在与云无关的图像。每个云都需要安装正确的内核选项、驱动程序和工具才能以最佳方式运行,甚至根本无法运行。

I'm not sure how packer is necessary alongside Terraform sense it seems to me that Terraform has the same exact built-in functionality.

一个很大的区别是 Terraform 不处理创建 AMI 的生命周期。 Terraform 不是从源代码创建图像的好工具,这不是它的构建目的。 HashiCorp 创建了这两个工具以相互补充。