执行 Terraform 0.12checklist,逐步提升 GoogleProvider 的版本

我想将Terraform更新至0.12以上。

本次要使用的Terraform版本是0.11.4。
需要注意的是,0.12版本中没有要执行的0.12checklist命令,而且即使在0.11.x版本中,也推荐使用0.11.14版本。

升级至Terraform 0.12 – HashiCorp的Terraform

根据这里的官方信息,这就是原因。
根据升级前的检查清单,可以进行预先确认。
在解决这里的警告后,将Terraform升级到0.12版本,然后运行Terraform init。

然后,您可以使用附带的 terraform 0.12upgrade 来升级到0.12.x版本。
※请参阅另一篇文章进行执行。

提供者的升级也是必需的。

使用Google提供者,所以也考虑了提供者的版本升级。请注意,如果版本太低,就像这次一样

世界观谷歌提供者 2.0.0 升级指南 – 哈希公司的世界观

需要逐步关注版本1.2.0-> 2.0.0->2.5.0及以上。


Terraform 0.12清单

Terraform附带的命令中,有一个用于升级版本至0.12以上的准备命令。

All other commands:
    0.12checklist      Checks whether the configuration is ready for Terraform v0.12
% terraform 0.12checklist
After analyzing this configuration and working directory, we have identified some necessary steps that we recommend you take before upgrading to Terraform v0.12:

- [ ] Upgrade provider "google" to version 2.17.0 or newer.

  No currently-installed version is compatible with Terraform 0.12. To upgrade, set the version constraint for this provider as follows and then run `terraform init`:

      version = "~> 2.17.0"

Taking these steps before upgrading to Terraform v0.12 will simplify the upgrade process by avoiding syntax errors and other compatibility problems.

将提供者”谷歌”升级至2.17.0或更高版本。

在执行测试时使用了GCP环境。
管理了Google Cloud Storage和Google Cloud IAM。
建议升级至以上版本并进行固定。
(推测不支持0.11.14的版本。)

查看 Terraform module 的版本

首先是当前模块的版本。

% terraform -v
Terraform v0.11.14
+ provider.google v1.20.0

Your version of Terraform is out of date! The latest version
is 0.12.10. You can update by downloading from www.terraform.io/downloads.html

供应商.google 版本1.20.0

供应商:谷歌云平台-HashiCorp的Terraform

根据公式信息,如果意识到版本为0.12,则需要2.5.0或更高版本。
在terraform-providers/terraform-provider-google的master分支下的CHANGELOG.md文件中。

从2.5.0版本开始,支持Terraform 0.12。

升级OpenStack提供者版本。

最好是先指定版本,然后进行terraform init操作。
换句话说,最好进行管理。
具体的方法已总结在这里。

固定Terraform的使用版本- Qiita

在开始之前,需要对提供者进行以下设置。

然而,在此之前,由于版本过低,我们需要逐步进行更新。

谷歌提供者 1.2.0 升级至 2.0.0。

《Terraform Google Provider 2.0.0升级指南 – 由HashiCorp提供的Terraform》

provider "google" {
  # ... other configuration ...

  version = "~> 1.20.0"
}

根据公式和这样的规定,本次考虑了这个设置的环境。

用中文自然地解释一下,只需要一个版本:
这个

provider "google" {
  # ... other configuration ...

  version = "~> 2.0.0"
}

首先,我們要從這個版本開始。
設定有以下的差異。

--- google_provider.tf
+++ google_provider.tf
@@ -1,5 +1,5 @@
 provider "google" {
-  version = "~> 1.20.0"
+  version = "~> 2.0.0"
   project = "goope-170607"
   region  = "asia-northeast1"
 }

以此状态进行 terraform init。

% terraform init

Initializing the backend...

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

Terraform has been successfully initialized!

这次更新顺利完成。
问题在于 terraform plan。
我们将逐步解决这个变更带来的困难。

另外,需要注意的是,Google IAM 进行了重大变更,之前未管理的设置也将成为导入对象。因此,使用此功能的人们需要谨慎。

谷歌提供商2.0.0更新至2.5.0(建议升级至2.7.0以上)

请升级到适用于 Terraform 0.12 的版本。与之前的操作类似,这次只需选择 2.5.0 或更高版本。

广告
将在 10 秒后关闭
bannerAds