terraform init创建空的tfstate文件

时间:2017-09-13 09:58:16

标签: terraform

当我在做terraform init命令时,TF没有tfstate(我的tfstate文件在s3桶中)。此外,我无法在.terraform文件夹中看到terraform backend-config文件。

我使用的是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!

您现在可以开始使用Terraform了。尝试运行" terraform plan"查看 您的基础架构所需的任何更改。所有Terraform命令 现在应该工作。

如果您为Terraform设置或更改模块或后端配置, 重新运行此命令以重新初始化您的工作目录。如果您忘记了,其他命令将检测到它,并在必要时提醒您这样做。

$ 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文件,但它不存在。

1 个答案:

答案 0 :(得分:1)

这是0.9.x之后的预期行为。 .terraform/terraform.tfstate处的本地tfstate文件几乎是一个空文件。唯一的变化是其中的序列号。它不断增加。

"serial": 1,

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

因此,尝试进行一些更改,然后检查远程tfstate文件(在您的情况下,它是s3://$TF_STATE_BUCKET/$TF_STATE_KEY),您应该看到差异。