了解 Terraform 提供程序和插件

Understanding terraform provider and plugin

有没有更简单的方法来理解它们?当我在代码中使用提供程序并执行 terraform init - 它会下载提供程序或插件吗?

第 3 方插件在哪里?什么是第 3 方插件?与第 3 方提供商一样吗?

插件是您开发供应商的方式。例如,AWS 提供程序在 go 编程语言中实现为 terraform 中的插件。

AWS 提供程序插件的源代码是 here:

The Terraform AWS provider is a plugin for Terraform that allows for the full lifecycle management of AWS resources.

因此,作为 end-user 您正在使用 AWS 提供商。但是,如果您想为提供者做出贡献,并实施或修复其中的错误,您将在 go 语言的插件上下文中执行此操作。

When I use a provider in my code and do a terraform init - does it download a provider or plugin ?

从技术上讲,它会下载一个提供 AWS(示例)提供程序功能的插件。它将存储在您的项目目录中 plugins 文件夹:

.terraform/plugins/linux_amd64/terraform-provider-aws_v3.2.0_x5

3rd party provider

这是一个提供商不由 HashiCorp 分发。那些 third-party providers/plugins 是“手动”安装在插件文件夹中,而 HashiCorp 的那些是使用 terraform init.

安装的