6
votes

Fournisseurs de mise à niveau Terraform

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?


0 commentaires

3 Réponses :


5
votes

Exécutez simplement terraform init pour mettre à niveau la version du plug-in AWS, pas besoin de supprimer le fichier d'état.


1 commentaires

il ne sera mis à jour que si vous spécifiez l'option -upgrade spécifiée par l'autre réponse.



15
votes

Il existe deux solutions pour résoudre ce problème:

  1. Supprimez simplement le cache terraform rm -fr .terraform et refaites un terraform init . Cela peut être dangereux si l'état de Terraform est dans ce dossier.
  2. Il existe en effet une -upgrade argument de la commande init afin de mettre à jour les versions du fournisseur dans les limites de contraintes.

0 commentaires

2
votes

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


0 commentaires