» Terraform Documentation
Welcome to the Terraform documentation!
We've divided the Terraform docs into several sections to make it easier to find things. Navigate using this index page, or jump from section to section in the "Other Docs" section of the navigation sidebar.
Visitors who are curious about Terraform can start here.
A broad overview of what Terraform is and why people use it.
Intermediate and advanced users spend most of their time here.
Documentation for Terraform's core functionality, including:
- Terraform's configuration language
terraformbinary and its subcommands
- The main Terraform providers
...and much more.
» Learn Terraform ➜ (external site)
New users can start here.
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 tutorials at Learn Terraform), but to explain best practices and show how the different pieces of a workflow fit together.
Definitions (and helpful links) for technical terms used throughout Terraform's documentation, help text, and UI. Visit the glossary whenever you get lost.
Documentation for Terraform Cloud.
Terraform Cloud is an application that helps teams use Terraform together. It manages Terraform runs in a consistent and reliable environment, and includes easy access to shared state and secret data, 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 Cloud offers free accounts for small teams, and paid plans with additional feature sets for medium-sized businesses.
Documentation for Terraform Enterprise.
Terraform Enterprise is an on-premise distribution of Terraform Cloud. It offers enterprises a private instance of the Terraform Cloud application, with no resource limits and with additional enterprise-grade architectural features like audit logging and SAML single sign-on.
Documentation about the Terraform Registry, a web service for distributing Terraform modules. Includes information about publishing, finding, and using modules.
Tutorials about using Terraform with GitHub Actions. GitHub Actions is GitHub's service for running commands in reaction to events in a Git repository, and HashiCorp publishes a helper action for running Terraform commands against repositories that contain Terraform configurations.
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.