首页 文章

terraform init创建空的tfstate文件

提问于
浏览
1

当我在做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 回答

  • 1

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

    "serial": 1,
    

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

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

相关问题