:Terraform (software)

{{Short description|Source-available software for defining and provisioning a datacenter infrastructure}}

{{Use dmy dates|date=September 2023}}

{{Primary sources|date=December 2020}}

{{Infobox software

| name = Terraform

| logo = Terraform Logo.svg

| logo size = 300px

| author = Mitchell Hashimoto et al.

| developer = HashiCorp

| released = {{start date and age|2014|07|28|df=yes}}

| latest release version = v1.10.3

| latest release date = {{Start date and age|2024|12|18|df=yes}}{{cite web|url=https://github.com/hashicorp/terraform/releases|title=Releases - hashicorp/terraform|via=GitHub|access-date=20 December 2024}}

| latest preview version =

| latest preview date =

| programming language = Go

| operating system = Linux, FreeBSD, macOS, OpenBSD, Solaris, and Microsoft Windows

| language = English

| genre = Infrastructure as code

| license = Business Source License v1.1{{Cite web|url=https://github.com/hashicorp/terraform/blob/main/LICENSE|title=License|via=GitHub}}(source-available)

}}

Terraform is an 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.{{Cite web |title=Syntax - Configuration Language |url=https://developer.hashicorp.com/terraform/language/syntax/configuration |website=Terraform}}

Characteristics

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.{{Cite web | url=https://www.terraform.io/docs/providers/index.html | title = Providers|website=Terraform}} Users can interact with Terraform providers by declaring resources{{Cite web | url=https://www.terraform.io/docs/configuration/resources.html| title = Resources|website=Terraform}} or by calling data sources.{{Cite web |url = https://www.terraform.io/docs/configuration/data-sources.html | title = Data Sources|website=Terraform}} 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.{{Cite web|url=https://www.terraform.io/docs/configuration/index.html | title = Configuration |website=Terraform}} The infrastructure as code can be written as modules, promoting reusability and maintainability.{{Cite web | url = https://www.terraform.io/docs/modules/index.html | title = Modules|website=Terraform}}

Terraform supports a number of cloud infrastructure providers such as Amazon Web Services, Cloudflare,{{Cite web|url=https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs|title=Cloudflare Provider|access-date=2022-11-23|website=Terraform}} Microsoft Azure, IBM Cloud, Serverspace, Selectel{{Cite web|date=2023-04-12|title=Selectel Provider|language=en|url=https://registry.terraform.io/providers/selectel/selectel/latest|website=Terraform}} Google Cloud Platform,{{Cite web|url=https://www.terraform.io/docs/providers/google/index.html|title=Google Cloud Platform Provider for Terraform|access-date=2017-02-05|website=Terraform}} DigitalOcean,{{Cite news|last=Starr-Bochicchio|first=Andrew|date=2018-10-22|title=Introducing the DigitalOcean Terraform Provider|language=en|work=DigitalOcean Blog|url=https://blog.digitalocean.com/introducing-the-digitalocean-terraform-provider/|access-date=2020-12-17}} Oracle Cloud Infrastructure, Yandex.Cloud,{{Cite web|date=2021-05-31|title=Yandex Cloud Provider|language=en|url=https://terraform-eap.website.yandexcloud.net/docs/providers/yandex/index.html}} VMware vSphere, and OpenStack.{{Cite web|url=https://www.terraform.io/intro/vs/chef-puppet.html|title=Terraform vs. Chef, Puppet, etc. - Terraform by HashiCorp|website=Terraform|language=en|access-date=2018-03-14}}{{Cite web|last=Bryant|first=Daniel|date=2017-03-26|title=HashiCorp Terraform 0.9. Released with State Locking, State Environments, and Destroy Provisioners|url=https://www.infoq.com/news/2017/03/terraform-0.9|access-date=2017-05-23|website=InfoQ}}{{Cite book|title=Terraform Writing Infrastructure as Configuration.|last=Yevgeniy.|first=Brikman|date=2017|publisher=O'Reilly Media|isbn=9781491977057|oclc=978667796}}{{Cite news|last=Somwanshi|first=Sneha|date=2015-03-01|title=Choosing the Right Tool to Provision AWS Infrastructure|language=en|work=ThoughtWorks Blog|url=https://www.thoughtworks.com/insights/blog/choosing-right-tool-provision-aws-infrastructure}}{{Cite book|title=The Terraform Book|last=Turnbull|first=James|year=2016|publisher=James Turnbull |isbn=9780988820258}}

History

HashiCorp launched the Terraform Module Registry in 2017.{{Cite web |last=Atkins |first=Martin |date=2017-11-16 |title=HashiCorp Terraform 0.11 |url=https://www.hashicorp.com/blog/hashicorp-terraform-0-11?_ga=2.155237499.1577772221.1522078246-1987543793.1522078246 |access-date=2020-12-17 |website=HashiCorp Blog}} In 2019, the paid version Terraform Enterprise was introduced.{{Cite web |last=HashiCorp |title=HashiCorp Terraform - Provision & Manage any Infrastructure |url=https://www.hashicorp.com/products/terraform |access-date=2020-04-15 |website=HashiCorp: Infrastructure enables innovation |language=en}}

Terraform was previously free software available under version 2.0 of the Mozilla Public License (MPL). On August 10, 2023, HashiCorp announced that all products produced by the company would be relicensed under the Business Source License (BUSL), with HashiCorp prohibiting commercial use of the community edition by those who offer "competitive services".{{Cite web |title=HashiCorp Adopts Business Source License for All Products |url=https://www.infoq.com/news/2023/08/hashicorp-adopts-bsl/ |access-date=2023-10-20 |website=InfoQ |language=en}}

OpenTofu was created as a fork resulting from the HashiCorp changing the Terraform license to a BSL.{{cite web |title=The OpenTofu Manifesto |url=https://opentofu.org/manifesto/ |website=OpenTofu |access-date=8 February 2025}}

References

{{Reflist}}