在M1 Mac上运行Terraformer的方法(2021年8月版)
这篇文章是关于什么的?
这篇文章描述了如何让M1 Mac能够运行terraformer工具,将现有的AWS环境转换为terraform的代码。
发觉的导火线
当使用brew创建terraform和terraformer环境并执行时,发生了以下错误:在~/.terraform.d中没有找到plugins目录。
% terraformer import aws --regions=ap-northeast-1 --resources=s3
2021/08/01 17:02:00 aws importing region ap-northeast-1
2021/08/01 17:02:00 open /Users/hogehoge/.terraform.d/plugins/darwin_arm64: no such file or directory
首先得先下结论。
-
- terrafomersはREADMEに書いてあるとおりterraform 1.0系や0.14系未対応なので、0.13系の最新版をtfenvを利用して導入する
-
- 上記を行ったあとでbrewを使ってterraformerを導入する
- brewでterraformを導入しない方がよさそう
什么是terraformer?
terraformer是一款工具,它可以读取现有的云环境配置,并将其转换为terraform代码。但请注意,这并不是Google的官方工具,而是由Google旗下的WAZE公司的SRE开发的工具。详见链接:https://github.com/GoogleCloudPlatform/terraformer
AWS之外,云服务包括GCP和Azure,以及Kubernetes、Fastly、GitHub、Cloudflare、Datadog、Grafana、Okta等许多其他服务。[请点击此处查看详情(https://github.com/GoogleCloudPlatform/terraformer/tree/master/docs)]
尽管从头开始编写 Terraform 代码很困难,但使用这些工具可以节省创建时间。
另外,还有一个名为terraforming的工具也具有类似功能,但是自2019年以来已经停止更新,所以现在如果要使用的话,terraformer似乎更好。
建造方法
打开terraformer的README文件并查看其Capabilities(能力)部分,会发现如下描述:
https://github.com/GoogleCloudPlatform/terraformer#capabilities
Capabilities
(略)
6. Support terraform 0.13 (for terraform 0.11 use v0.7.9).
换句话说,terraformer支持terraform 0.13版本,但不支持1.0系列或0.14系列。确实,如果不仔细阅读README就不行了哈哈。
在这个情况下,即使使用brew安装terraform,它也不能正确运行。(可能是因为我的环境问题)
在这里,可以使用tfenv工具来引入Terraform 0.13系列版本(截至2021年8月1日,版本号为0.13.7),然后再引入terraformer工具进行构建。
使用tfenv和tfenv进行Terraform的安装引入
### tfenvの導入
% brew install tfenv
### tfenvでterraform 0.13.7 を導入
% tfenv install 0.13.7
Installing Terraform v0.13.7
Downloading release tarball from https://releases.hashicorp.com/terraform/0.13.7/terraform_0.13.7_darwin_amd64.zip
(略)
Installation of terraform v0.13.7 successful. To make this your default version, run 'tfenv use 0.13.7'
%
### terraformのコードを置くディレクトリに移動する。
### 以後の作業はこのディレクトリ内で行う。
% cd {terraformのコードを置くディレクトリ}
### terraform 0.13.7を利用するように設定
% tfenv use 0.13.7
Switching default version to v0.13.7
Switching completed
%
### terraformのバージョン確認
% terraform version
Terraform v0.13.7
(以下略)
%
引入 terraformer
### terraformerの導入
% brew install terraformer
==> Downloading https://ghcr.io/v2/homebrew/core/terraformer/manifests/0.8.15
(以下略)
%
### terraformerのバージョン確認
% terraformer version
Terraformer v0.8.15
%
确认动作
以下是进行操作确认的步骤。请注意,事先需安装awscli并在aws config中进行默认设置,以确保能够连接到现有的AWS环境。(关于awscli的安装和配置方法,本文略去,请参考其他文章。)
### init.tfファイルを作成しawsの指定をする
% echo 'provider "aws" {}' > init.tf
### 初期化する(terraform使う時のお約束)
% terraform init
Initializing the backend...
Initializing provider plugins...
- Finding latest version of hashicorp/aws...
- Installing hashicorp/aws v3.52.0...
- Installed hashicorp/aws v3.52.0 (signed by HashiCorp)
(略)
%
### terraformerでS3の設定をimportする
### 事前にaws configでdefault設定を行っておくこと
% terraformer import aws --regions=ap-northeast-1 --resources=s3
2021/08/01 23:21:15 aws importing region ap-northeast-1
2021/08/01 23:21:19 aws importing... s3
2021/08/01 23:21:20 aws done importing s3
2021/08/01 23:21:20 Number of resources for service s3: 1
2021/08/01 23:21:20 Refreshing state... aws_s3_bucket.tfer--XXXXXXXX ### バケット名を伏せています
2021/08/01 23:21:22 Filtered number of resources for service s3: 1
2021/08/01 23:21:22 aws Connecting....
2021/08/01 23:21:22 aws save s3
2021/08/01 23:21:22 aws save tfstate for s3
%
总结
通过这样做,即使是M1 Mac,也可以使用Terrafomer。
我认为不久之后,Terraformer也将支持Terraform 1.0系列。但是,因为到2021年8月为止,信息仍然混乱,可能有人感到困惑,所以我写了这篇文章。
如果能对您有所帮助,我会感到幸福。
参考网页
请提供完整的中文内容,以便我为您提供正确的翻译。