terraform init 创建空的 tfstate 文件

问题描述 投票:0回答:1

当我执行 terraform init 命令时,TF 没有 tfstate (我的 tfstate 文件位于 s3 存储桶中)。另外,我无法在 .terraform 文件夹中看到 terraform 后端配置文件。

我使用的是terraform 0.10.4版本


输出:

$ terraform --version
Terraform v0.10.4
    
$ terraform init \

-lock="true"
-backend-config="bucket=$TF_STATE_BUCKET"
-backend-config="key=$TF_STATE_KEY"
-backend-config="dynamodb_table=$TF_LOCK_TABLE"
-backend-config="region=$AWS_REGION"
-backend-config="profile=$AWS_PROFILE"
-backend-config="encrypt=true"
.
Downloading modules...
Get: git::ssh://XXXXXXXXXXXXXXXXX/add/tf-vpc.git?ref=1.0.1
Get: git::ssh://XXXXXXXXXXXXXXXXX/add/tf-ec-redis.git?ref=1.1.3
Get: git::ssh://XXXXXXXXXXXXXXXXX/add/tf-rds-pg.git?ref=1.3.0

Initializing provider plugins...
    
Checking for available provider plugins on https://releases.hashicorp.com...
Downloading plugin for provider "aws" (0.1.4)...
    
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 = "~> 0.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.

$ ll -al .terraform/
total 8
drwxr-xr-x 1 XXXXX 1049089 0 Sep 12 18:10 modules/
drwxr-xr-x 1 XXXXX 1049089 0 Sep 12 18:10 plugins/

在当前位置,TF 将备份 s3-tfstate 文件,但该文件不存在。

terraform
1个回答
2
投票

这是 0.9.x 之后的预期行为。

.terraform/terraform.tfstate
处的本地tfstate文件几乎是一个空文件。 唯一的变化是其中的序列号。还在持续增加。

"serial": 1,

如果不运行

terraform apply
,远程tfstate文件将不会更新。如果您从不运行
terraform apply
,则远程 tfstate 文件不存在。

因此尝试进行一些更改,然后检查远程 tfstate 文件(在您的情况下,它是

s3://$TF_STATE_BUCKET/$TF_STATE_KEY
),您应该看到差异。

© www.soinside.com 2019 - 2024. All rights reserved.