Install Terraform

更新时间:
复制 MD 格式

Install and configure Terraform in about 10 minutes to start managing your infrastructure as code.

Terraform is distributed as a binary package, as described in Introduction to Terraform. You can install it manually or with a package manager.

Install Terraform

Manual installation

Use a precompiled package

Go to the official Terraform website, find the ZIP package for your operating system, and download it.

After downloading, unzip the package to /usr/local/bin. You can safely delete the remaining files.

Add the Terraform binary location to your PATH environment variable. The steps vary by operating system.

Mac or Linux

Display your PATH configuration.

echo $PATH

Move the Terraform binary to a directory in your PATH. This example assumes the binary is in your Downloads folder and your PATH includes /usr/local/bin. Adjust the path as needed.

mv ~/Downloads/terraform /usr/local/bin/

Windows

  1. Go to Control Panel > System > System Settings > Environment Variables.

  2. In System variables, find PATH.

  3. Click Edit.

  4. Add a semicolon (;) to separate entries. For example: c:\path;c:\path2

  5. Open a new console for the settings to take effect.

Build from source

To compile from source, clone the HashiCorp Terraform repository.

git clone https://github.com/hashicorp/terraform.git

Wait for the clone to complete.

tiankai@U-QDY6MW2N-0211 0203-Quickstart % git clone https://github.com/hashicorp/terraform.git
Cloning into 'terraform'...
remote: Enumerating objects: 298204, done.
remote: Counting objects: 100% (3099/3099), done.
remote: Compressing objects: 100% (1576/1576), done.
remote: Total 298204 (delta 1962), reused 2369 (delta 1459), pack-reused 295105
Receiving objects: 100% (298204/298204), 302.63 MiB | 3.62 MiB/s, done.
Resolving deltas: 100% (187677/187677), done.
Updating files: 100% (4517/4517), done.

After cloning completes, navigate to the terraform directory.

cd terraform

Compile and install the binary to $GOPATH/bin/.

go install

Wait for the compilation to complete.

tiankai@U-ODY6MW2N-0211 terraform % go install
go: downloading github.com/hashicorp/go-checkpoint v0.5.0
go: downloading github.com/apparentlymart/go-shquot v0.0.1
go: downloading github.com/apparentlymart/go-userdirs v0.0.0-20200915174352-b0c018a67c13
go: downloading github.com/hashicorp/cli v1.1.6
go: downloading github.com/hashicorp/go-plugin v1.6.0
go: downloading github.com/hashicorp/terraform-svchost v0.1.1
go: downloading github.com/mattn/go-shellwords v1.0.12
go: downloading github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db
go: downloading go.opentelemetry.io/contrib/exporters/autoexport v0.45.0
go: downloading go.opentelemetry.io/otel v1.24.0
go: downloading go.opentelemetry.io/otel/sdk v1.24.0
go: downloading go.opentelemetry.io/otel/trace v1.24.0
go: downloading github.com/hashicorp/go-cleanhttp v0.5.2
go: downloading github.com/hashicorp/go-uuid v1.0.3
go: downloading github.com/zclconf/go-cty v1.14.4
go: downloading github.com/hashicorp/hcl/v2 v2.20.0
go: downloading github.com/hashicorp/terraform-registry-address v0.2.3
go: downloading golang.org/x/text v0.14.0

Note: If you receive the zsh: command not found: go message, you must first install the Go environment.

Add the Terraform binary location to your PATH. The steps vary by operating system.

Mac or Linux

Display your PATH configuration.

echo $PATH

Move the Terraform binary to a directory in your PATH. This example assumes the binary is in your Downloads folder and your PATH includes /usr/local/bin. Adjust the path as needed.

mv ~/Downloads/terraform /usr/local/bin/

Windows

  1. Navigate to Control Panel > System > System Settings > Environment Variables.

  2. In System variables, find PATH.

  3. Click Edit.

  4. Separate path entries with a semicolon. For example: c:\path;c:\path2

  5. Open a new console for the settings to take effect.

macOS Homebrew

Homebrew is a package manager for macOS. Install Terraform with the following commands.

Install the HashiCorp tap.

brew tap hashicorp/tap

Install Terraform.

brew install hashicorp/tap/terraform
Important

This command installs the latest version. To update later, run the upgrade command.

To update Terraform, first update Homebrew.

brew update

Then upgrade Terraform.

brew upgrade hashicorp/tap/terraform

Windows Chocolatey

Chocolatey is a package manager for Windows. Use Chocolatey to install Terraform with a single command.

choco install terraform

Cloud Shell

Alibaba Cloud Shell is a free O&M tool with Terraform pre-installed. You can run Terraform commands directly in Cloud Shell.

Ensure you have an Alibaba Cloud account with the required permissions.

Open Cloud Shell at https://shell.aliyun.com or .

After you log on, run the following command.

terraform

The output confirms that Terraform is available in Cloud Shell.

shell@Alicloud:~$ terraform
Usage: terraform [-version] [-help] <command> [args]
The available commands for execution are listed below.
The most common, useful commands are shown first, followed by
less common or more advanced commands. If you're just getting
started with Terraform, stick with the common commands. For the
other commands, please read the help and docs before usage.
Common commands:
    apply              Builds or changes infrastructure
    console            Interactive console for Terraform interpolations
    destroy            Destroy Terraform-managed infrastructure
    env                Workspace management
    fmt                Rewrites config files to canonical format
    get                Download and install modules for the configuration
    graph              Create a visual graph of Terraform resources
    import             Import existing infrastructure into Terraform
    init               Initialize a Terraform working directory
    login              Obtain and save credentials for a remote host
    logout             Remove locally-stored credentials for a remote host
    output             Read an output from a state file
    plan               Generate and show an execution plan
    providers          Prints a tree of the providers used in the configuration
    refresh            Update local state file against real resources
    show               Inspect Terraform state or plan
    taint              Manually mark a resource for recreation
    untaint            Remove the 'tainted' state from a resource instance
    validate           Validates the Terraform files
    version            Prints the Terraform version
    workspace          Workspace management

All other commands:
    debug              Debug output management (experimental)
    force-unlock       Manually unlock the terraform state
    push               Obsolete command for Terraform Enterprise legacy (v1)
    state              Advanced state management
shell@Alicloud:~$

Use Cloud Shell.

Linux

Alibaba Cloud Linux

yum install -y dnf-plugin-releasever-adapter
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum install terraform
[root@iZbp17mtyk1tw8mmto999uZ ~]# yum install -y dnf-plugin-releasever-adapter
Last metadata expiration check: 0:04:07 ago on Tue 16 Jul 2024 02:45:35 PM CST.
Package dnf-plugin-releasever-adapter-1.0-3.al8.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@iZbp17mtyk1tw8mmto999uZ ~]# yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
Adding repo from: https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
[root@iZbp17mtyk1tw8mmto999uZ ~]# yum install terraform
Hashicorp Stable - x86_64                                                                527 kB/s | 1.4 MB     00:02
Last metadata expiration check: 0:00:01 ago on Tue 16 Jul 2024 02:45:35 PM CST.
Dependencies resolved.
================================================================================
 Package                Architecture        Version                Repository              Size
================================================================================
Installing:
 terraform              x86_64              1.9.2-1                hashicorp               27 M
Installing dependencies:
 git                    x86_64              2.43.5-1.0.1.al8       alinux3-updates          92 K
 git-core               x86_64              2.43.5-1.0.1.al8       alinux3-updates          11 M
 git-core-doc           noarch              2.43.5-1.0.1.al8       alinux3-updates         3.1 M
 perl-Error             noarch              1:0.17025-2.1.al8      alinux3-os               46 K
 perl-Git               noarch              2.43.5-1.0.1.al8       alinux3-updates          79 K
 perl-TermReadKey       x86_64              2.37-7.2.al8           alinux3-os               41 K

Transaction Summary
================================================================================
Install  7 Packages

Total download size: 41 M
Installed size: 120 M
Is this ok [y/N]: y
...
Complete!

Verify the installation

Run terraform to verify the installation.

terraform

A list of available Terraform subcommands is displayed, confirming the installation is complete.

➜  ~ terraform
Usage: terraform [global options] <subcommand> [args]
The available commands for execution are listed below.
The primary workflow commands are given first, followed by
less common or more advanced commands.
Main commands:
  init          Prepare your working directory for other commands
  validate      Check whether the configuration is valid
  plan          Show changes required by the current configuration
  apply         Create or update infrastructure
  destroy       Destroy previously-created infrastructure
All other commands:
  console       Try Terraform expressions at an interactive command prompt
  fmt           Reformat your configuration in the standard style
  force-unlock  Release a stuck lock on the current workspace
  get           Install or upgrade remote Terraform modules
  graph         Generate a Graphviz graph of the steps in an operation
  import        Associate existing infrastructure with a Terraform resource
  login         Obtain and save credentials for a remote host
  logout        Remove locally-stored credentials for a remote host
  metadata      Metadata related commands
  output        Show output values from your root module
  providers     Show the providers required for this configuration
  refresh       Update the state to match remote systems
  show          Inspect Terraform state or plan
  state         Advanced state management
  taint         Mark a resource instance as not fully functional
  test          Experimental support for module integration testing
  untaint       Remove the 'tainted' state from a resource instance
  version       Show the current Terraform version
  workspace     Manage workspaces

Global options (use these before the subcommand, if any):
  -chdir=DIR    Switch to a different working directory before executing the
                given subcommand.
  -help         Show this message.
  -version      An alias for the "version" subcommand.

FAQ

If the terraform init command times out because of network latency and Terraform cannot be downloaded, see Configure a Terraform Init acceleration solution.