gpt4 book ai didi

vsphere - 使用 Terraform 迁移现有基础设施和扩展

转载 作者:行者123 更新时间:2023-12-02 21:26:52 25 4
gpt4 key购买 nike

我们计划在数据中心自动创建和删除虚拟机,为我们的云服务提供支持。该服务使得每个新客户都获得专用虚拟机(至少 3 个),因此虚拟机的数量不断增长。我们已经有大约 2000 个虚拟机在 ESXi 上运行。所以在采用 terraform 之前我们现在有两个问题需要解决 -

  1. 我们如何迁移现有虚拟机以由 Terraform 管理(或者我们应该这样做)?生成资源规范可以编写脚本,但验证计划以确保不受影响将是一项挑战 - 考虑到虚拟机的数量以及它们全部处于事件状态的事实给工程师带来了额外的压力。

  2. 随着虚拟机数量的增加,磁盘上.tf文件的数量将不断增加。我们可以将多个虚拟机合并到一个文件中,但这会使以编程方式删除单个虚拟机变得有点棘手。将文件拆分到多个目录是我能想到的简单解决方法,但是......是否有更好的方法来处理 terraform 的规模?

我找不到任何讨论这些问题的博客,因此在这里寻找一些来自实践经验的建议。

最佳答案

很高兴看到社区开始越来越多地在 Stack Overflow 上询问 Terraform 相关问题。

关于您的问题:

  1. 迁移现有虚拟机以由 Terraform 管理意味着更新 tfstate 文件。到目前为止,还没有办法为已创建的资源创建资源定义并将其自动放入状态文件中(尽管有像 Terraforming 这样的工具,它只能部分且仅针对 AWS 资源)。因此,您必须在 *.tf 文件中描述资源,手动更新 tfstate 文件,然后通过运行 terraform plan 来验证 tfstate == tf > 应该表示没有任何更改,应该应用这些更改。关于到底要放入 tfstate 文件中的内容 - 我建议首先在 tf 中创建资源定义,然后基于此创建虚拟 VM (terraform apply),在中查找相关对象更新了 tfstate 文件,并将这些虚拟值更新为该 tfstate 文件中虚拟机的真实值(您还需要更新 serial 以防止本地/远程状态不一致错误)。

  2. 除了按目录对资源进行分组之外,我不知道还有其他更智能的方法来处理大量相关资源。通过这种方式,您可以仅针对特定的逻辑上分离的目录执行计划/应用,但您必须拥有分离的状态文件。它可能很容易被矫枉过正(有点警告,所以不要在家尝试)。

在使用 Terraform 时(尤其是在您拥有大量资源的情况下),我大多会牢记以下建议:

  1. 组织您的代码,以便您在一个位置拥有模块,并在另一个位置将参数传递给它们。代码的可重用性,或者现在如何调用它:)
  2. terraform plan 等命令上使用 -target 标志和 terraform apply限制您想要接触的资源。

希望对您有帮助!并且会有更多的人享受Terraform .

关于vsphere - 使用 Terraform 迁移现有基础设施和扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33162462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com