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?
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).
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.
$ export AWS_ACCESS_KEY_ID="AWS_ACCESS_KEY_ID"
$ export AWS_SECRET_ACCESS_KEY="AWS_SECRET_ACCESS_KEY"
$ terraform plan
~/.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!