Managing Plugins
Terraform relies on plugins called providers to manage various types of resources. For more information about providers, refer to Providers in the Terraform language docs.
Note: Providers are the only plugin type most Terraform users interact with. Terraform also supports third-party provisioner plugins, but we discourage their use.
Terraform installs any providers required by a configuration when initializing a working directory. By default, this works without any additional interaction but requires network access to download providers from their source registry.
You can configure Terraform's provider installation behavior to limit or skip network access, and to enable use of providers that aren't available through a networked source. Terraform also includes some commands to show information about providers and to reduce the effort of installing providers in air-gapped environments.
Configuring Plugin Installation
Terraform's configuration file includes options for caching downloaded plugins, or explicitly specifying a local or HTTPS mirror to install plugins from. For more information, see CLI Config File.
Getting Plugin Information
Use the terraform providers
command to get information
about the providers required by the current working directory's configuration.
Use the terraform version
command (or
terraform -version
) to show the specific provider versions installed for the
current working directory.
Use the terraform providers schema
command to
get machine-readable information about the resources and configuration options
offered by each provider.
Managing Plugin Installation
Use the terraform providers mirror
command to
download local copies of every provider required by the current working
directory's configuration. The directory uses the nested directory layout
that Terraform expects when installing plugins from a local source, so you can
transfer it directly to an air-gapped system that runs Terraform.
Use the terraform providers lock
command
to update the lock file that Terraform uses to ensure predictable runs when
using ambiguous provider version constraints.