web-dev-qa-db-fra.com

Comment configurer les variables d'environnement dans Hashicorp Terraform

Je suis assez nouveau sur Terraform, même si j'ai parcouru tous les modules pédagogiques disponibles sur le site de Hashicorp.

Actuellement, je n'arrive pas à comprendre comment configurer les variables d'environnement. Je sais comment référencer des variables dans la configuration main.tf (access_key = "${var.access_key}"), et je sais comment enregistrer cette clé d'accès dans un fichier séparé et y faire référence, mais ce que je ne comprends pas (et ne trouve aucune documentation/instruction sur), c'est comment configurer les variables d'environnement, donc je ne pas besoin d'enregistrer la clé d'accès à un fichier.

Quelqu'un sait-il comment s'y prendre?

4
Neal

La façon dont Terraform utilise les variables d'environnement et donc les valeurs arbitraires pour toutes les bonnes choses Terraform consiste à préfixer n'importe variable d'environnement avec TF_VAR_ puis Terraform l'utilisera automatiquement.

Pour votre cas d'utilisation spécifique, cela signifie que vous pouvez définir la variable Terraform access_key en définissant la variable ** environment * TF_VAR_access_key.

Cette technique est intégrée à Terraform elle-même et est donc indépendante de tout fournisseur spécifique.

La documentation peut être trouvée sur https://www.terraform.io/docs/commands/environment-variables.html#tf_var_name cela fonctionne aussi pour plus ancien Version Terraform ( Je l'ai testé avec 0.11).

0
  1. quand j'ai commencé à apprendre tf, j'ai utilisé un terraform.tfvars fichier où je mets:
aws_access_key="myaccesskey"
aws_secret_key="mysecertkey"
region='aws-region'

dans main.tf:


variable "aws_access_key" {}
variable "aws_secret_key" {}
variable "private_key_path" {}

provider "aws" {
  access_key = var.aws_access_key
  secret_key = var.aws_secret_key
  region     = var.region
}

en vous assurant que les deux fichiers sont dans le même répertoire.

  1. puis j'ai commencé à utiliser des variables env dans Mac:
$ export AWS_ACCESS_KEY_ID="AWS_ACCESS_KEY_ID"
$ export AWS_SECRET_ACCESS_KEY="AWS_SECRET_ACCESS_KEY"
$ terraform plan
  1. en utilisant le profil, ~/.aws/credentials
aws configure
AWS Access Key ID: yourID
AWS Secret Access Key: yourSecert
Default region name : aws-region
Default output format : env

J'espère que ça aide!

bonne chance, terraform est une chose incroyable à apprendre!

0
akshaymittal143