我在AWS的CentOS 6上安装了Terraform和Terraformer

我的操作系统太老了,非常抱歉。

我是一个Terraform初学者。

我对Terraform有点了解,所以我尝试使用terraform import,但是太困难了,所以我安装了一个导入工具。

安装Terraform

请参照官方文档即可:
https://learn.hashicorp.com/terraform/getting-started/install.html

如果硬要说的话,由于操作系统是Cent,所以我的配置文件是~/.bash_profile。

我花了很多时间在选择场所上纠结,

/usr/local/bin/terraform的本地路径是什么?

我已经安装了。

关于Terraform import的相关内容

虽然我试图借此机会导入 Route 53 中的某个区域,但由于 terraform 要求逐个导入每条记录,所以我感到有些沮丧。

据说作为导入工具很有名的有terraforming和terraformer,但我决定选择terraformer。

进行Terraformer的安装。

假设

需要使用Go语言。另外,请注意目前的Terraformer需要Go1.13版本。可能是因为CentOS6和旧版本的原因,所以在库中找不到Go1.13,需要另外下载。

安装Go语言

以下是参考资料。只要执行到第04步就可以了(虽然写着CentOS7,但不用担心)。
如果已经安装了旧版本的Golang,请先卸载掉。
https://linuxize.com/post/how-to-install-go-on-centos-7/#how-to-install-go

[2019/11/10附言]
由于发现有可用的rpm包,建议您先安装rpm包,然后再切换到yum管理。

安装Terraformer

我参考了本项目的“安装”部分。
https://github.com/GoogleCloudPlatform/terraformer#installation

我不知道为什么,但是我将设置场所为 `/usr/local/bin/terraformer`。

让我们通行证。

...
export PATH="$PATH:/usr/local/go/bin" #Go言語のインストールで設定したパス
export PATH="$PATH:/usr/local/bin/terraformer" #Terraformerの場所を追記
...

存储后不要忘记。

source ~/.bash_profile

另外,在第三个位置上,

cd /path/to/terraformer/directory
go run build/main.go aws

安装后,命令将由terraformer更改为terraformer-aws。请注意。
(我正在使用terraformer-aws。)

我在思考第四点说的是什么,但我创建了一个名为terraform工作目录(我创建了一个名为 /home/ec2-user/terraform/的目录。)的init.tf文件。对我来说,是关于aws的。

provider "aws" {}

请在包含init.tf文件的位置执行terraform init命令。

在Terraformer中导入

在Terraform的作业目录(即init.tf所在位置)中。

terraformer-aws import aws --resources=vpc,subnet,ec2_instance,route53,cloudfront --connect=true --regions=ap-northeast-1

如果按照上述方式进行操作,将会生成大量的tf文件。
请根据需要自行更改resources和regions的值。

然后在工作目录中完成

生成的/aws/ec2实例
生成的/aws/route53
生成的/aws/cloudfront

应该会创建这样的文件夹。

尝试执行terraform plan。

在这里遇到的问题是,当更改tf文件并在init.tf所在的文件夹中运行terraform plan时,会出现“Already up-to-date!”的提示,没有进行任何计划。

我刚刚看了一下生成的文件夹,发现每个服务都有一个名为provider.tf的init.tf文件,可能是为了进行terraform plan而创建的。

换言之,你需要进入AWS的每个服务(如ec2_instance、route_53等)的目录,并执行terraform命令。

$ cd ./generated/aws/ec2_instance
$ terraform init  #これ大事
$ terraform plan

我一開始為什麼無法運作,所以寫下了這個筆記。

完成

在Terraform中手动导入太棘手了。
而且,整体上都有点随便,非常抱歉。

广告
将在 10 秒后关闭
bannerAds