AWSの管理にterraformを導入したいけれど、既存のリソースはもうすでに存在しちゃっているということは、まあよくあると思います。手で tf ファイルと tfstate ファイルをいじればなんとかやってやれないことはないですが、幸いなことにこれを支援してくれるツールが存在します。それが terraforming です。

terrraforming の導入

terraforming を取ってくる Gemfile 書いて bundle install すれば、おk。

terraforming の使い方

とても簡単。bundle exec terraforming [service_name] --profile=[$PROFILE]で既存のawsの構成通りのtfファイルのコードを生成してくれます。以下のような具合。

これを tf ファイルに追記すればよいのですが、 tfstate にこれらのリソースがあることが記されていないため、このまま plan, apply をすると既存のものを無視して構築を始めてしまいます。これを防ぐためには tfstate を適切に更新して、 plan で差分が出ない状況に持っていく必要があります。そこで terraforming iam --profile default --tfstate --merge=./terraform.tfstate とすると既存の tfstate に既存のAWSインフラの state を追記してもらえます。こわければ tfstate の backup を取っておいたほうが良いかと思います。

とても良いですねー。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です