Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python terraform可以运行吗;套用;对于并行的多个基础架构/工作区?_Python_Azure_Terraform_Terraform0.12+ - Fatal编程技术网

Python terraform可以运行吗;套用;对于并行的多个基础架构/工作区?

Python terraform可以运行吗;套用;对于并行的多个基础架构/工作区?,python,azure,terraform,terraform0.12+,Python,Azure,Terraform,Terraform0.12+,我们有一个terraform实例和脚本,可以在azure中创建infra。我们希望使用相同的脚本为azure上的每个客户创建/更新/销毁独立的infra。我们通过为每个客户机分配一个工作区、不同的var文件以及在azure上使用后端远程状态文件来实现这一点 我们的目的是创建一个包装器python程序,该程序可以创建多个线程并触发terraform并行应用于所有工作空间。这似乎不起作用,因为terraform一次运行一个工作区。 关于如何实现terraform并行执行的任何建议/建议都适用于不同的

我们有一个terraform实例和脚本,可以在azure中创建infra。我们希望使用相同的脚本为azure上的每个客户创建/更新/销毁独立的infra。我们通过为每个客户机分配一个工作区、不同的var文件以及在azure上使用后端远程状态文件来实现这一点

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

可以同时运行多个terraform进程,只要:

  • 在状态存储和锁配置方面,它们都有完全不同的后端配置。(如果它们具有重叠的锁配置,那么它们将相互互斥,即使您运行多个副本,也可以有效地序列化操作。)
  • 它们使用一组完全不相交的远程对象,包括由托管资源(
    resource
    块)和数据资源(
    data
    块)表示的对象
大多数远程API本身不直接支持任何类型的事务或互斥概念,因此Terraform通常不能为单个对象提供细粒度互斥。但是,使用完全独立的远程对象的多个运行不会相互交互

同时删除工作区(使用terraform workspace delete)和针对该工作区的操作将导致未定义的行为,因为它可能会删除terraform用于跟踪该操作的对象

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