Installez et configurez Terraform en une dizaine de minutes pour commencer à gérer votre infrastructure sous forme de code.
Terraform est distribué sous la forme d'un paquet binaire, comme décrit dans la rubrique Présentation de Terraform. Vous pouvez l'installer manuellement ou via un gestionnaire de paquets.
Installer Terraform
Installation manuelle
Utiliser un paquet précompilé
Accédez au site officiel de Terraform, localisez le paquet ZIP correspondant à votre système d'exploitation, puis téléchargez-le.
Une fois le téléchargement terminé, décompressez le paquet vers le répertoire /usr/local/bin. Vous pouvez ensuite supprimer les fichiers restants sans risque.
Ajoutez l'emplacement du binaire Terraform à votre variable d'environnement PATH. La procédure varie selon le système d'exploitation utilisé.
Mac ou Linux
Affichez la configuration actuelle de votre PATH.
echo $PATH
Déplacez le binaire Terraform vers un répertoire inclus dans votre PATH. Dans cet exemple, nous partons du principe que le binaire se trouve dans votre dossier Downloads et que votre PATH inclut /usr/local/bin. Adaptez le chemin si nécessaire.
mv ~/Downloads/terraform /usr/local/bin/
Windows
Accédez à Panneau de configuration > Système > Paramètres système > Variables d'environnement.
Dans les variables système, recherchez PATH.
Cliquez sur Modifier.
Ajoutez un point-virgule (;) pour séparer les entrées. Par exemple : c:\path;c:\path2
Ouvrez une nouvelle console pour que les paramètres prennent effet.
Compiler à partir du code source
Pour compiler depuis les sources, clonez le référentiel HashiCorp Terraform.
git clone https://github.com/hashicorp/terraform.git
Attendez la fin du clonage.
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.
Une fois le clonage terminé, accédez au répertoire terraform.
cd terraform
Compilez et installez le binaire dans $GOPATH/bin/.
go install
Attendez la fin de la compilation.
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
Remarque : Si vous recevez le message zsh: command not found: go, vous devez d'abord installer l'environnement Go.
Ajoutez l'emplacement du binaire Terraform à votre PATH. La procédure varie selon le système d'exploitation utilisé.
Mac ou Linux
Affichez la configuration actuelle de votre PATH.
echo $PATH
Déplacez le binaire Terraform vers un répertoire inclus dans votre PATH. Dans cet exemple, nous partons du principe que le binaire se trouve dans votre dossier Downloads et que votre PATH inclut /usr/local/bin. Adaptez le chemin si nécessaire.
mv ~/Downloads/terraform /usr/local/bin/
Windows
Accédez à Panneau de configuration > Système > Paramètres système > Variables d'environnement.
Dans les variables système, recherchez PATH.
Cliquez sur Modifier.
Séparez les entrées de chemin par un point-virgule. Par exemple : c:\path;c:\path2
Ouvrez une nouvelle console pour que les paramètres prennent effet.
macOS Homebrew
Homebrew est un gestionnaire de paquets pour macOS. Installez Terraform à l'aide des commandes suivantes.
Installez le dépôt (tap) HashiCorp.
brew tap hashicorp/tap
Installez Terraform.
brew install hashicorp/tap/terraform
Cette commande installe la dernière version disponible. Pour mettre à jour ultérieurement, exécutez la commande de mise à niveau.
Pour mettre à jour Terraform, commencez par actualiser Homebrew.
brew update
Procédez ensuite à la mise à niveau de Terraform.
brew upgrade hashicorp/tap/terraform
Windows Chocolatey
Chocolatey est un gestionnaire de paquets pour Windows. Utilisez Chocolatey pour installer Terraform en une seule commande.
choco install terraform
Cloud Shell
Alibaba Cloud Shell est un outil gratuit d'exploitation et de maintenance disposant de Terraform préinstallé. Vous pouvez exécuter les commandes Terraform directement dans Cloud Shell.
Assurez-vous de disposer d'un compte Alibaba Cloud avec les permissions requises.
Ouvrez Cloud Shell à l'adresse ou https://shell.alibabacloud.com/.
Après vous être connecté, exécutez la commande suivante.
terraform
Le résultat confirme que Terraform est disponible dans 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:~$
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!
Vérifier l'installation
Exécutez terraform pour vérifier l'installation.
terraform
Une liste des sous-commandes Terraform disponibles s'affiche, ce qui confirme que l'installation est terminée.
➜ ~ 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.