terraform применяет сообщение об ошибке конфигурации бэкэнда с S3 после успешной работы init и плана terraform - PullRequest
0 голосов
/ 12 июня 2018

Я запускаю terraform на моем экземпляре Linux, и я получаю ужасы ниже.

+ /usr/local/bin/terraform workspace new test
enter code here[0m[0m[1m[33mBackend reinitialization required. Please run "terraform init".[0m

[33mReason: Initial configuration of the requested backend "s3"
The "backend" is the interface that Terraform uses to store state,
perform operations, etc. If this message is showing up, it means that the
Terraform configuration you're using is using a custom configuration for
the Terraform backend.

Changes to backend configurations require reinitialization. This allows
Terraform to setup the new configuration, copy existing state, etc. This is
only done during "terraform init". Please run that command now then try again.

If the change reason above is incorrect, please verify your configuration
hasn't changed and try again. At this point, no changes to your existing
configuration or state have been made.
[0m
[31mFailed to load backend: Initialization required. Please see the error message above.

Вот файл конфигурации Terraform.

provider "aws" {
  # don't touch below here
  access_key = "${var.aws_access_key}"
  secret_key = "${var.aws_secret_key}"
  region     = "us-west-2"
}

# Configure Terraform to store this in S3
terraform {
  backend "s3" {
    bucket = "nom-terraform"
    key    = "apps/onboarding/terraform.tfstate"
    region = "us-west-2"
  }
}

Перед запуском terraform, яудалось запустить terraform plan успешно.

Ответы [ 3 ]

0 голосов
/ 17 июля 2018

Вам нужно сначала инициализировать провайдер, который загружает провайдер с последней версией, вывод будет примерно таким: -

# terraform init

Initializing provider plugins...
- Checking for available provider plugins on https://releases.hashicorp.com...
- Downloading plugin for provider "spotinst" (1.1.1)...

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 = "~> 1.2"
* provider.cloudflare: version = "~> 0.1"
* provider.spotinst: version = "~> 1.1"

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.`
0 голосов
/ 01 ноября 2018

Сначала я удалил бы любой файл состояния и папку .terraform, иногда возникает много ошибок из-за повреждения.

После этого я запускаю init, и он должен запускаться.

Я не верюдобавление бэкэнда было проблемой, так как он должен был попытаться объединить состояния

0 голосов
/ 12 июня 2018

Кажется, что вы добавили новый s3 в качестве бэкэнда.Таким образом, terraform требует повторной инициализации.Просто запустите terraform init, он добавит s3 в качестве бэкэнда и запросит разрешение на перенос локального файла состояния в s3.

...