|Original author(s)||Mitchell Hashimoto et al.|
|Initial release||28 July 2014|
1.3.6 / 30 November 2022
|Operating system||Linux, FreeBSD, macOS, OpenBSD, Solaris, and Microsoft Windows|
|Type||Infrastructure as code|
|License||Mozilla Public License v2.0|
Terraform is an open-source infrastructure-as-code software tool created by HashiCorp. Users define and provide data center infrastructure using a declarative configuration language known as HashiCorp Configuration Language (HCL), or optionally JSON.
Terraform manages external resources (such as public cloud infrastructure, private cloud infrastructure, network appliances, software as a service, and platform as a service) with "providers". HashiCorp maintains an extensive list of official providers, and can also integrate with community-developed providers. Users can interact with Terraform providers by declaring resources or by calling data sources. Rather than using imperative commands to provision resources, Terraform uses declarative configuration to describe the desired final state. Once a user invokes Terraform on a given resource, Terraform will perform CRUD actions on the user's behalf to accomplish the desired state. The infrastructure as code can be written as modules, promoting reusability and maintainability.
Terraform supports a number of cloud infrastructure providers such as Amazon Web Services, Cloudflare, Microsoft Azure, IBM Cloud, Serverspace, Google Cloud Platform, DigitalOcean, Oracle Cloud Infrastructure, Yandex.Cloud, VMware vSphere, and OpenStack.
Terraform relies on providers to enable interaction with various APIs and services. These providers are configured in the Terraform configuration code and allow access to Cloud-based offerings, such as AWS or GCP, and Software-as-a-Service offerings. This allows developers using Terraform to integrate multiple services into their automation workflows.
Terraform modules are designed to simplify the creation of multiple resources by grouping them logically in a single and reusable offering. This minimizes development time and reduces redundancy, making it easier for users to create complex infrastructure components without writing large amounts of code.
- "Releases - hashicorp/terraform". Retrieved 2 December 2022 – via GitHub.
- "LICENSE" – via GitHub.
- "Syntax - Configuration Language".
- "Data Sources".
- "Cloudflare Provider". Retrieved 2022-11-23.
- "Google Cloud Platform Provider for Terraform". Retrieved 2017-02-05.
- Starr-Bochicchio, Andrew (2018-10-22). "Introducing the DigitalOcean Terraform Provider". DigitalOcean Blog. Retrieved 2020-12-17.
- "Yandex Cloud Provider". 2021-05-31.
- "Terraform vs. Chef, Puppet, etc. - Terraform by HashiCorp". Terraform by HashiCorp. Retrieved 2018-03-14.
- Bryant, Daniel (2017-03-26). "HashiCorp Terraform 0.9. Released with State Locking, State Environments, and Destroy Provisioners". InfoQ. Retrieved 2017-05-23.
- Yevgeniy., Brikman (2017). Terraform Writing Infrastructure as Configuration. O'Reilly Media. ISBN 9781491977057. OCLC 978667796.
- Somwanshi, Sneha (2015-03-01). "Choosing the Right Tool to Provision AWS Infrastructure". ThoughtWorks Blog.
- Turnbull, James (2016). The Terraform Book. ISBN 9780988820258.
- Atkins, Martin (2017-11-16). "HashiCorp Terraform 0.11". HashiCorp Blog. Retrieved 2020-12-17.
- HashiCorp. "HashiCorp Terraform - Provision & Manage any Infrastructure". HashiCorp: Infrastructure enables innovation. Retrieved 2020-04-15.
- "What Are Terraform Modules and How to Use Them - Tutorial". Spacelift. Retrieved 2023-01-26.