Terraform: как обновить провайдера без изменения версии Terraform - PullRequest
0 голосов
/ 08 марта 2019

, когда я пытаюсь запустить приложение terraform apply, я вижу ошибку:

aws_glue_catalog_database.test: Provider doesn't support resource: aws_glue_catalog_database

Похоже, мой провайдер устарел, потому что версия terraform показывает provider.aws v1.6.0, и фактически я могу запустить клей в другой папке.с той же версией terraform, но с более новой версии provider.aws v2.0.0

Terraform v0.11.10
+ provider.archive v1.0.0
+ provider.aws v1.6.0
+ provider.null v1.0.0
+ provider.template v1.0.0

Я пытался обновить провайдера, но оставил версию terraform v0.11.10 такой же.для этого я запускаю terraform init -upgrade, но вижу следующее предупреждение:

terraform init -upgrade
Initializing the backend...
Backend configuration changed!

Terraform has detected that the configuration     specified for the backend
has changed. Terraform will now check for existing state in the backends.


Do you want to migrate all workspaces to "s3"?
  Both the existing "s3" backend and the newly     configured "s3" backend
 support workspaces. When migrating between      backends, Terraform will copy
  all workspaces (with the same names). THIS WILL     OVERWRITE any conflicting
  states in the destination.

  Terraform initialization doesn't currently migrate     only select workspaces.
  If you want to migrate a select number of     workspaces, you must manually
  pull and push those states.

  If you answer "yes", Terraform will migrate all     states. If you answer
  "no", Terraform will abort.

Я решил сказать «нет», потому что вышеупомянутое предупреждение меня напугало.

У меня есть серверный ресурс "s3" для удаленного хранения статуса в s3 и несколько рабочих областей.Я не понимаю, почему и как будут изменены серверная часть и рабочая область, если я обновлю провайдера, используя приведенную выше команду;сломает ли это мою систему.

Кто-нибудь знает, нормально ли мне говорить "да", не шутя?или какой Terraform CMD я должен запустить для обновления поставщика без изменения версии Terraform?Спасибо.

1 Ответ

1 голос
/ 08 марта 2019

Вы делаете обновление основного выпуска, поэтому я всегда боюсь риска.

Вот несколько ссылок, которые могут помочь вам выделить риски (если вы их еще не видели):

Прежде чем что-либо предпринять, я бы рекомендовал сначала создать резервную копию файлов состояния, которые хранятся в удаленной корзине S3.Если ваша инфраструктура довольно статична (или у вас есть механизм, чтобы сделать ее статичной), вы всегда можете поместить старые резервные копии состояния обратно в S3, если он идет ужасно неправильно, не вызывая проблемы, поскольку в процессе обновления не произошло бы никаких применений..

Я не знаю ваших настроек, но в идеале вы должны делать это в первую очередь в среде разработки, которая, как мы надеемся, ослабит ваши нервы при изменении файлов состояния.

...