» Terraform Documentation
Welcome to the Terraform documentation!
There are a lot of things a user of Terraform might need to know about. To help you manage this information, we've divided the Terraform docs into several sections.
You can navigate the docs via this index page, or you can jump from section to section using the "Other Docs" area of the navigation sidebar, available in most areas of this site.
» Introduction to Terraform ➜
Visitors who are curious about Terraform can start here.
A broad overview of what Terraform is and why people use it.
» Terraform CLI ➜
Intermediate and advanced users spend most of their time here.
Documentation for Terraform's core functionality, including:
- Terraform's configuration language
-
The
terraform
binary and its subcommands - The main Terraform providers
...and much more.
» Learn Terraform ➜ (external site)
New users can start here.
Interactive guides to teach you how to use Terraform's features. Begin with the Getting Started guide, then continue with task-specific advanced guides or go directly to the Terraform CLI docs.
» Guides and Whitepapers ➜
Intermediate users can go here for a deeper understanding of what's possible with Terraform.
Detailed descriptions of various Terraform workflows, both general and specific. This includes things like:
- The end-to-end loop of making infrastructure changes with Terraform
- The long-term process of evolving provisioning practices in a large organization
- Tasks for upgrading to major new Terraform versions
This section is devoted to overviews and explanations of complex systems; the goal isn't to teach you how to accomplish a particular task (like the guides at Learn Terraform), but to explain best practices and show how the different pieces of a workflow fit together.
» Terraform Glossary ➜
Definitions (and helpful links) for technical terms used throughout Terraform's documentation, help text, and UI. Visit the glossary whenever you get lost.
» Terraform Enterprise ➜
Documentation for Terraform Enterprise.
Terraform Enterprise is a supplementary paid product that makes it easier for teams to manage infrastructure together. It provides a way to share access to sensitive data, a consistent and reliable environment for Terraform runs, access controls for approving changes to infrastructure, a private registry for sharing Terraform modules, detailed policy controls for governing the contents of Terraform configurations, and more.
» Terraform Registry ➜
Documentation about the Terraform Registry, a web service for distributing Terraform modules. Includes information about publishing, finding, and using modules.
» Terraform GitHub Actions ➜
Documentation about the Terraform GitHub Actions. GitHub Actions is GitHub's service for running commands in reaction to events in a Git repository, and HashiCorp publishes several actions for validating repositories that contain Terraform configurations.
» Extending Terraform ➜
If you need to create a new Terraform provider (for a public cloud service or a purely internal service), go here.
Documentation about developing Terraform providers, with extensive information about Terraform's internals.
Terraform relies on provider plugins to manage infrastructure resources across a wide variety of infrastructure services. Anyone can make and distribute a Terraform provider for their own service.