2017-08-15 18:27:34 +02:00
|
|
|
---
|
|
|
|
layout: "registry"
|
|
|
|
page_title: "Finding and Using Modules from the Terraform Registry"
|
|
|
|
sidebar_current: "docs-registry-use"
|
|
|
|
description: |-
|
2017-08-15 22:13:31 +02:00
|
|
|
The Terraform Registry makes it simple to find and use modules.
|
2017-08-15 18:27:34 +02:00
|
|
|
---
|
|
|
|
|
|
|
|
# Finding and Using Modules
|
|
|
|
|
|
|
|
The [Terraform Registry](https://registry.terraform.io) makes it simple to
|
|
|
|
find and use modules.
|
|
|
|
|
|
|
|
## Finding Modules
|
|
|
|
|
|
|
|
Every page on the registry has a search field for finding
|
|
|
|
modules. Enter any type of module you're looking for (examples: "vault",
|
|
|
|
"vpc", "database") and resulting modules will be listed. The search query
|
|
|
|
will look at module name, provider, and description to match your search
|
|
|
|
terms. On the results page, filters can be used further refine search results.
|
|
|
|
|
|
|
|
By default, only [verified modules](/docs/registry/modules/verified.html)
|
|
|
|
are shown in search results. Verified modules are reviewed by HashiCorp to
|
|
|
|
ensure stability and compatibility. By using the filters, you may view unverified
|
|
|
|
modules as well.
|
|
|
|
|
|
|
|
## Using Modules
|
|
|
|
|
|
|
|
The Terraform Registry is integrated directly into Terraform. This makes
|
|
|
|
it easy to reference any module in the registry. The syntax for referencing
|
|
|
|
a registry module is `namespace/name/provider`. For example:
|
|
|
|
`hashicorp/consul/aws`.
|
|
|
|
|
2018-01-31 20:52:14 +01:00
|
|
|
~> **Note:** Module registry integration was added in Terraform v0.10.6, and full versioning support in v0.11.0.
|
|
|
|
|
2017-08-15 18:27:34 +02:00
|
|
|
When viewing a module on the registry on a tablet or desktop, usage instructions
|
2018-01-31 20:52:14 +01:00
|
|
|
are shown on the right side. You can copy and paste this to get started with any module. Some modules may
|
2017-08-15 18:27:34 +02:00
|
|
|
have required inputs you must set before being able to use the module.
|
|
|
|
|
|
|
|
```hcl
|
|
|
|
module "consul" {
|
|
|
|
source = "hashicorp/consul/aws"
|
2017-11-15 17:27:41 +01:00
|
|
|
version = "0.1.0"
|
2017-08-15 18:27:34 +02:00
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
## Module Versions
|
|
|
|
|
|
|
|
Each module in the registry is versioned. These versions syntactically must
|
|
|
|
follow [semantic versioning](http://semver.org/). In addition to pure syntax,
|
2018-01-31 20:52:14 +01:00
|
|
|
we encourage all modules to follow the full guidelines of semantic versioning.
|
2017-08-15 18:27:34 +02:00
|
|
|
|
2018-01-31 20:52:14 +01:00
|
|
|
Terraform since version 0.11 will resolve any provided
|
|
|
|
[module version constraints](/docs/modules/usage.html#module-versions) and
|
2017-11-15 17:27:41 +01:00
|
|
|
using them is highly recommended to avoid pulling in breaking changes.
|
|
|
|
|
2018-01-31 20:52:14 +01:00
|
|
|
Terraform from version 10.6 through to 0.11 had partial support for the registry
|
2017-11-15 18:09:47 +01:00
|
|
|
protocol, however will not honor version constraints and always download the
|
2017-11-15 17:27:41 +01:00
|
|
|
latest version.
|