gpt4 book ai didi

python - terraform 可以为多个基础设施/工作空间并行运行 "apply"吗?

转载 作者:行者123 更新时间:2023-12-03 23:47:03 25 4
gpt4 key购买 nike

我们有一个 terraform 实例和脚本,可以在 azure 中创建基础设施。我们希望使用相同的脚本为 azure 上的每位客户创建/更新/销毁隔离的基础设施。我们通过为每个客户端分配一个工作区、不同的 var 文件并使用 azure 上的后端远程状态文件来实现这一目标。

我们的目的是创建一个包装器Python程序,它可以创建多个线程并触发terraform并行应用于所有工作空间。这似乎不起作用,因为 terraform 一次只运行一个工作区。关于如何实现适用于不同工作空间的 terraform 并行执行的任何建议/建议?

最佳答案

同时运行多个 Terraform 进程是安全的,只要:

  • 它们都具有完全不同的后端配置,无论是在状态存储方面还是在锁配置方面。 (如果它们具有重叠的锁定配置,那么它们将相互互斥,从而有效地序列化操作,尽管您运行多个副本。)
  • 它们使用一组完全不相交的远程对象,包括由托管资源(资源 block )和数据资源(数据 block )表示的对象。

大多数远程 API 本身不直接支持任何类型的事务或互斥概念,因此 Terraform 通常无法为单个对象提供细粒度的互斥。但是,使用完全独立的远程对象的多次运行不会相互交互。

同时删除工作空间(使用terraform工作空间删除)并针对该工作空间执行操作将导致未定义的行为,因为它可能会删除 Terraform 用于跟踪操作的对象。

没有用于同时运行多个操作的内置 Terraform 命令,因此要做到这一点将需要包装 Terraform 的自定义自动化。

关于python - terraform 可以为多个基础设施/工作空间并行运行 "apply"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62073438/

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