Notices: This section not yet converted to new layout. Download stats are rolling back out.



Package test results are passing.

Private CDN cached downloads available for licensed customers. Never experience 404 breakages again! Learn more...

This package was approved as a trusted package on 8/23/2019.

Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions.

The key features of Terraform are:

  • Infrastructure as Code: Infrastructure is described using a high-level configuration syntax. This allows a blueprint of your datacenter to be versioned and treated as you would any other code. Additionally, infrastructure can be shared and re-used.
  • Execution Plans: Terraform has a "planning" step where it generates an execution plan. The execution plan shows what Terraform will do when you call apply. This lets you avoid any surprises when Terraform manipulates infrastructure.
  • Resource Graph: Terraform builds a graph of all your resources, and parallelizes the creation and modification of any non-dependent resources. Because of this, Terraform builds infrastructure as efficiently as possible, and operators get insight into dependencies in their infrastructure.
  • Change Automation: Complex changesets can be applied to your infrastructure with minimal human interaction. With the previously mentioned execution plan and resource graph, you know exactly what Terraform will change and in what order, avoiding many possible human errors.

For more information, see the introduction section of the Terraform website.

To install Terraform, run the following command from the command line or from PowerShell:

C:\> choco install terraform

To upgrade Terraform, run the following command from the command line or from PowerShell:

C:\> choco upgrade terraform


  • tools\chocolateyInstall.ps1 Show
    $ErrorActionPreference = 'Stop'
    $url        = ''
    $url64      = ''
    $checksum   = '74a566cd857d277bd23b0af890ad91265fed62275813a6d0e67409730930aa57'
    $checksum64 = 'ce5b0eae0b443cbbb7c592d1b48bad6c8a3c5298932d35a4ebcba800c3488e4e'
    $unzipLocation = Split-Path -Parent $MyInvocation.MyCommand.Definition
    if ([System.IO.Directory]::Exists("$env:ChocolateyInstall\lib\terraform")) {
      if ([System.IO.Directory]::Exists("$env:ChocolateyInstall\lib\terraform\tools")) {
        # clean old plugins and ignore files
        Write-Host "Removing old terraform plugins"
        Remove-Item "$env:ChocolateyInstall\lib\terraform\tools\terraform-*.*"
    } else {
      if ([System.IO.Directory]::Exists("$env:ALLUSERSPROFILE\chocolatey\lib\terraform")) {
        if ([System.IO.Directory]::Exists("$env:ALLUSERSPROFILE\chocolatey\lib\terraform\tools")) {
          # clean old plugins and ignore files
          Write-Host "Removing old terraform plugins"
          Remove-Item "$env:ALLUSERSPROFILE\chocolatey\lib\terraform\tools" -Include "terraform-*.*"
    $packageParams = @{
      PackageName   = "terraform"
      UnzipLocation = $unzipLocation
      Url           = $url
      Url64         = $url64
      Checksum      = $checksum
      Checksum64    = $checksum64
      ChecksumType  = 'sha256'
    Install-ChocolateyZipPackage @packageParams
  • tools\chocolateyUninstall.ps1 Show
    UnInstall-ChocolateyZipPackage "terraform" ""

Virus Scan Results

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.


This package has no dependencies.

Package Maintainer(s)

Software Author(s)

  • Mitchell Hashimoto
  • HashiCorp


HashiCorp 2015-2019


Release Notes

0.12.7 (August 22, 2019)

* New functions regex and regexall allow applying a regular expression pattern to a string and retrieving any matching substring(s) (#22353)

* lang/funcs: lookup() can work with maps of lists, maps and objects (#22269)
* SDK: helper/acctest: Add function to return random IP address (#22312)
* SDK: httpclient: Introduce composable UserAgent(version) (#22272)
* connection/ssh: Support certificate authentication (#22156)

* config: reduce MinIems and MaxItems validation during decoding, to allow for use of dynamic blocks (#22530)
* config: don't validate MinItems and MaxItems in CoerceValue, allowing providers to set incomplete values (#22478)
* config: fix panic on tuples with for_each (#22279)
* config: fix references to each of for_each in provisioners (#22289)
* config: fix panic when using nested dynamic blocks (#22314)
* config: ensure consistent evaluation when moving between single resources and for_each in addressing (#22454)
* core: only start a single instance of each required provisioner (#22553)
* command: fix issue where commands occasionally exited before the error message printed (#22373)
* command/0.12upgrade: use user-supplied plugin-dir (#22306)
* command/hook_ui: Truncate the ID considering multibyte characters (#18823)
* command/fmt: Terraform fmt no longer inserts spaces after % (#22356)
* command/state: Allow moving resources to modules not yet in state (#22299)
* backend/google: Now using the OAuth2 token endpoint on instead of These endpoints are equivalent in functionality but hosts are resolvable from private Google Cloud Platform VPCs where other connectivity is restricted. (#22451)

Previous Releases

For more information on previous releases, check out the changelog on GitHub.

Version History

Version Downloads Last updated Status
Terraform 0.12.6 3773 Friday, August 2, 2019 approved
Terraform 0.12.5 2670 Friday, July 19, 2019 approved
Terraform 0.12.4 984 Monday, July 15, 2019 approved
Terraform 0.12.3 3306 Tuesday, June 25, 2019 approved
Terraform 0.12.2 2152 Thursday, June 13, 2019 approved
Terraform 0.12.1 1750 Wednesday, June 5, 2019 approved
Terraform 0.12.0 2129 Wednesday, May 22, 2019 approved
Terraform 0.12.0-beta1 147 Tuesday, April 2, 2019 approved
Terraform 0.12.0-alpha4 284 Friday, December 28, 2018 approved
Show More

Discussion for the Terraform Package

Ground rules:

  • This discussion is only about Terraform and the Terraform package. If you have feedback for Chocolatey, please contact the google group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or Terraform, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.

comments powered by Disqus uses cookies to enhance the user experience of the site.