views4GCPのストレージサービスについてまとめてみた。Exp:2509はじめまして!SRE所属です、よろしくお願いします。TweetShareHatena本記事では、手動で作成したGCP環境を簡単にTerraformコード化したい!という方に便利なツール、terraformit-gcpをご紹介します。Codeの考え方が浸透してきました。そんな中、手動で管理していた環境をコードで管理できるようにしたい!と思っている方も多いはず。既存環境をTerraformコード化するのはなかなか大変な作業です。具体的には以下の手順が必要になります。planでコードが正しいか確認GCP環境の規模が大きくなればなるほど、手間のかかる作業となります。辛い作業をなんとかしたい、、、という思いから開発されたのがterraformit-gcpです。terraformit-gcpterraformit-gcpはオープンソースとして公開されていますので、どなたでも利用できます。terraformit-gcpバージョン0.9が対応しているTerraformのバージョンはv0.11.13または14です。Terraformのv0.12は今後対応予定です。他にterraformerやterraformingがあります。このうちGCPに対応しているのはterraformerです。APIを利用して取得するかどうかです。APIを利用して既存GCPリソースを取得します。CloudAssetAPIの設定が必要になりますが、どのリソースをインポートするかを指定する必要はありません。terraformerは以下のように既存リソースを指定して、コマンドを実行します。--projects=aaa,fffまた、対応しているリソースはterraformerの方が多いです。APIで取得できるリソースに制限されます。対応リソースはgithubを参照してください。コマンド一発でコード化してみるそれではさっそく、実際に手動で作成したGCP環境を、terraformit-gcpを使ってコード化してみます。PCはMacを想定しています。プロジェクトを作成デモ用のプロジェクトを作成します。今回は手動でNetwork、SubNetwork、サービスアカウント、GCEインスタンスを作成しました。terraformit-gcp準備terraformをインストールterraformまたはtfenv(Terraformバージョン管理ツール)をインストールします。オススメはtfenvです。簡単にterraformのバージョンを切り替えられます。versiongoインストールgoをインストールします。versionPath設定Pathを通します。~/.bash_profilegcloudインストールgcloudをリンク先の手順に従いインストールします。gcloudはGCPを管理するためのコマンドラインツールです。gcloud初期設定gcloudを使って、ローカル環境から、GCPリソースにアクセスするために使用する認証情報を生成します。loginterraformit-gcpインストールterraformit-gcpをインストールします。installgoのバージョンv1.13を使用している場合、上記のインストールが失敗する可能性があります。installしてください。APIを使って、GCP既存リソースの情報を取得します。APIを有効化します。APIは2019年6月時点ではGCSに出力する必要があります。APIの出力を保存するためのBucketを作成します。gs://バケット名OauthClientIDを生成してダウンロードCloudAssetAPIを呼び出すための、認証情報を生成します。Oauth画面を作成します。OAuth同意画面を選択して、アプリケーション名を選択して、OKを選択します。アプリケーションの種類はその他を選択します。最後に、ダウンロードボタンからjsonファイルをダウンロードします。この認証情報には有効期限があります。有効期限がきれた場合は、もう一度生成します。コードを生成するディレクトリに移動コードを生成するディレクトリに移動します。自分の環境に応じた、.terraformit-gcp.yamlファイルを生成します。planコマンドでコードを生成いよいよ、terraformit-gcpコマンドを実行します。browser:が最初に表示されます。codeを取得します。取得したコードを入力し、Enterキーを押します。以下の結果が表示されたら成功です。API取得の時間がメインです。この環境ですと、90秒くらいで完了しました。ディレクトリに、tfstateとコードが出力されています。terraformit-gcp-provider.tf*terraformit-gcpで生成されるファイル出力されたファイルの中身を見てみましょう。terraformit-gcp-import.sh既存環境をimportするためのコマンドです。importコマンドが羅列してあります。xxxxxxxxxterraformit-gcp-provider.tfproviderの情報が記述されているファイルです。"asia-northeast1"}terraformit-gcp-backend.tfバックエンドの情報が記述されているファイルです。バックエンドにGCSを指定した場合は出力されます。terraformit-gcp-resource.tfgcpリソースの情報が記述されているファイルです。APIの取得に失敗します。一度認証情報を生成してダウンロードしてください。}:github.com/cloud-ace/terraformit-gcp/cloudasset.CreateCloudAsset生成したtfファイルが正しくなく、エラーが発生する場合もあります。現在、startup-scriptなどの設定は、うまく取り込めない場合があります。planで正しく修正されていることを確認してください。requestをあげていただければ幸いです。terraformit-gcpはどんなことをしているのかterraformit-gcpは、以下の手順で既存環境をTerraformコード化しています。planコマンドはこの手順を一発で実行します。createコマンドを使用します。詳細はREADMEをご覧ください。APIが対応しているリソースにのみ対応しています。対応しているリソースはGithubを確認してください。(まだ開発中のリソースもあります。)・Terraformで管理したくないリソースがある場合は、createコマンドで1つずつ手順を実行します。現在、マネージドインスタンスグループのインスタンスなど、Terrafromで管理したくないリソースもコード化されます。importしてください。まとめ初期設定は少し手間がかかるかもしれませんが、簡単にTerraformコード化できたと思います。terraformit-gcpは、2019年6月に公開したできたてのオープンソースです。