AWS等の構成情報をterraform形式でエクスポートする

terraformで管理されていないシステムをterraformで管理したいということありませんか?

私はあります。

それらをterraform管理にすぐに入れないにしても、既存のシステムの構成がコードとして出力されるだけでも運用する身としてはありがたいですよね。

そんな時にはこちら!

https://github.com/GoogleCloudPlatform/terraformer

Google様、やはり神!!

Google製ツールではあるけどGCP以外のクラウドにも対応しています。

使い方は上記リポジトリのREADMEに記載されていますが簡単です。

インストールは、、、

$ export PROVIDER=all
$ curl -LO https://github.com/GoogleCloudPlatform/terraformer/releases/download/$(curl -s https://api.github.com/repos/GoogleCloudPlatform/terraformer/releases/latest | grep tag_name | cut -d '"' -f 4)/terraformer-${PROVIDER}-linux-amd64
$ chmod +x terraformer-${PROVIDER}-linux-amd64
$ sudo mv terraformer-${PROVIDER}-linux-amd64 /usr/local/bin/terraformer

これで使えるようになります。

それでは実際にAWSのEC2の構成をエクスポートしてみましょう。

$ terraformer import aws --resources=ec2_instance --regions=ap-northeast-1

すると、コマンドを実行したカレントディレクトリにgeneratedフォルダが誕生し、そこにtfファイル等が出力されています。

あとは出力されたファイルを煮るなり焼くなり自由にできます!ありがたや、ありがたや。