Dans un répertoire Terraform existant:
* provider.aws: no suitable version installed version requirements: "~> 1.55.0" versions installed: "1.51.0"
Si je configure un nouveau répertoire Terraform:
~ terraform version Terraform v0.11.11 + provider.aws v1.55.0
Comment mettre à jour mon provider.aws
? Si je place version = "~> 1.55.0"
dans le fournisseur "aws"
dans mon fichier .tf
, j'obtiens une erreur:
~ terraform version Terraform v0.11.11 + provider.aws v1.51.0
Je m'attendais à trouver une commande terraform update
ou quelque chose de similaire. Mais je ne trouve pas cela.
Ne suis-je pas censé mettre à jour le fournisseur? Dois-je supprimer l'état, réexécuter init
puis refresh
? Ou y a-t-il un meilleur moyen?
3 Réponses :
Exécutez simplement terraform init
pour mettre à niveau la version du plug-in AWS, pas besoin de supprimer le fichier d'état.
il ne sera mis à jour que si vous spécifiez l'option -upgrade
spécifiée par l'autre réponse.
Il existe deux solutions pour résoudre ce problème:
rm -fr .terraform
et refaites un terraform init
. Cela peut être dangereux si l'état de Terraform est dans ce dossier. -upgrade
a > argument de la commande init afin de mettre à jour les versions du fournisseur dans les limites de contraintes. Utilisez la commande terraform init -upgrade pour mettre à niveau la dernière version acceptable de chaque fournisseur.
Avant la mise à niveau
ubuntu@staging-docker:~/terraform$ terraform version Terraform v0.12.8 + provider.aws v2.27.0 + provider.template v2.1.2
Commande de mise à niveau
ubuntu@staging-docker:~/terraform$ terraform init -upgrade Upgrading modules... - asg in asg - ecs in ecs - lambda in lambda - lt in lt Initializing the backend... Initializing provider plugins... - Checking for available provider plugins... - Downloading plugin for provider "aws" (hashicorp/aws) 2.27.0... - Downloading plugin for provider "template" (hashicorp/template) 2.1.2... The following providers do not have any version constraints in configuration, so the latest version was installed. To prevent automatic upgrades to new major versions that may contain breaking changes, it is recommended to add version = "..." constraints to the corresponding provider blocks in configuration, with the constraint strings suggested below. * provider.aws: version = "~> 2.27" * provider.template: version = "~> 2.1"
Après la mise à niveau
ubuntu@staging-docker:~/terraform$ terraform -version Terraform v0.12.8 + provider.aws v2.16.0 + provider.template v2.1.2